diff --git a/core/lookup/org_pork_service.py b/core/lookup/org_pork_service.py
index d00e0d5..040eef2 100644
--- a/core/lookup/org_pork_service.py
+++ b/core/lookup/org_pork_service.py
@@ -175,7 +175,7 @@ class OrgPorkService:
"ai_rank, ai_level, org_id, org_name, "
"org_rank_name, org_rank_id, dimension, "
"head_id, pvp_rating, pvp_title, source, last_updated) "
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", data)
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)".replace("?", "%s"), data)
conn.commit()
if len(members) == 0:
diff --git a/modules/core/accounting/services/account_service.py b/modules/core/accounting/services/account_service.py
index b7cd900..585bb7e 100644
--- a/modules/core/accounting/services/account_service.py
+++ b/modules/core/accounting/services/account_service.py
@@ -365,7 +365,7 @@ class AccountService:
"auto_invite, raid_invite, raid_spam, news_spam) "
f"VALUES(?, ?, ?, 1, ?, ?, {pref_autoinvite}, {pref_raidinvite}, "
f"{pref_raidspam}, {pref_newsspam}) ON DUPLICATE KEY UPDATE "
- "member=VALUE(member), last_updated=VALUE(last_updated), disabled=1",
+ "member=VALUE(member), last_updated=VALUE(last_updated), disabled=1".replace("?", "%s"),
users)
return cur.rowcount
cur.executemany(
@@ -373,7 +373,7 @@ class AccountService:
"created, auto_invite, raid_invite, raid_spam, news_spam) "
f"VALUES(?, ?, ?, ?, ?, {pref_autoinvite}, {pref_raidinvite}, "
f"{pref_raidspam}, {pref_newsspam}) ON DUPLICATE KEY UPDATE "
- "member=VALUE(member), last_updated=VALUE(last_updated)",
+ "member=VALUE(member), last_updated=VALUE(last_updated)".replace("?", "%s"),
users)
return cur.rowcount
@@ -396,7 +396,7 @@ class AccountService:
if type(users) == list and len(users) > 0:
with self.db.pool.get_connection() as conn:
with conn.cursor() as cur:
- cur.executemany("UPDATE account set member=-1 where char_id=? and ?", users)
+ cur.executemany("UPDATE account set member=-1 where char_id=? and ?".replace("?", "%s"), users)
def check_member(self, char_id) -> bool:
account = self.get_account(char_id) or {}
diff --git a/modules/core/ban/orgban_controller.py b/modules/core/ban/orgban_controller.py
index f0de083..df4a0e8 100644
--- a/modules/core/ban/orgban_controller.py
+++ b/modules/core/ban/orgban_controller.py
@@ -150,7 +150,7 @@ class OrgBanController(BaseModule):
"REPLACE INTO player(char_id, name, first_name, last_name, level, breed, gender, faction, "
"profession, profession_title, ai_rank, ai_level, org_id, org_name, org_rank_name, "
"org_rank_id, dimension, head_id, pvp_rating, pvp_title, source, last_updated) "
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)".replace("?", "%s"),
data)
self.account_service.create_users(accounts, disable=True)
if sender:
diff --git a/modules/onlinebot/online/org_controller.py b/modules/onlinebot/online/org_controller.py
index 752e74b..d8a4344 100644
--- a/modules/onlinebot/online/org_controller.py
+++ b/modules/onlinebot/online/org_controller.py
@@ -180,7 +180,7 @@ class OrgController:
"ON DUPLICATE KEY UPDATE "
"org_name=VALUE(org_name), "
"member_count=VALUE(member_count), "
- "last_seen=VALUE(last_seen)",
+ "last_seen=VALUE(last_seen)".replace("?", "%s"),
data)
# self.db.exec("DELETE FROM all_orgs where last_seen < ?", [time.time() - 2 * 24 * 60 * 60])
self.logger.info(f"Successfully fetched {count} orgs in {time.time() - start:.2f} seconds.")
@@ -253,7 +253,7 @@ class OrgController:
"ai_level=VALUE(ai_level), org_name=VALUE(org_name), "
"org_id=VALUE(org_id), org_rank_name=VALUE(org_rank_name), "
"org_rank_id=VALUE(org_rank_id), source=VALUE(source), "
- "last_updated=VALUE(last_updated)", data)
+ "last_updated=VALUE(last_updated)".replace("?", "%s"), data)
conn.commit()
self.db.exec("UPDATE account set member = -1 "
"where char_id NOT IN "
@@ -333,7 +333,7 @@ class OrgController:
"gender, faction, profession, profession_title, ai_rank, ai_level, "
"org_id, org_name, org_rank_name, org_rank_id, dimension, head_id, "
"pvp_rating, pvp_title, source, last_updated) VALUES "
- "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", data)
+ "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)".replace("?", "%s"), data)
self.account_service.create_users(accounts)
self.logger.info(f"Organisation {org_name} added!")
sender.reply(f"{org_name} has been added to the roster. "
diff --git a/modules/standard/news/mail_controller.py b/modules/standard/news/mail_controller.py
index d985b6e..622672f 100644
--- a/modules/standard/news/mail_controller.py
+++ b/modules/standard/news/mail_controller.py
@@ -181,7 +181,7 @@ class MailController:
readers.append(DictObject({"name": user.name, "char_id": user.char_id}))
with self.db.pool.get_connection() as conn:
with conn.cursor() as cur:
- cur.executemany("INSERT INTO mail(sender, recipient, text, sent_at) VALUES(?, ?, ?, ?)", mails)
+ cur.executemany("INSERT INTO mail(sender, recipient, text, sent_at) VALUES(?, ?, ?, ?)".replace("?", "%s"), mails)
for user in readers:
self.send_mail(0, user.char_id, self.get_mails(user.char_id),
greeting=f"{sender.sender.name} just sent you a group mail, "
diff --git a/modules/standard/tower/hot_controller.py b/modules/standard/tower/hot_controller.py
index 7329be6..fe540b7 100644
--- a/modules/standard/tower/hot_controller.py
+++ b/modules/standard/tower/hot_controller.py
@@ -48,7 +48,7 @@ class TowerHotController(BaseModule):
with self.db.lock:
with self.db.pool.get_connection() as conn:
with conn.cursor() as cur:
- cur.executemany("UPDATE towers SET penalty_until=? WHERE pf_id=? AND site_number=? AND org_id=?", blob)
+ cur.executemany("UPDATE towers SET penalty_until=? WHERE pf_id=? AND site_number=? AND org_id=?".replace("?", "%s"), blob)
# self.db.exec("UPDATE towers SET penalty_until=? where org_id=?",
# [time.time() + 60 * 60, event_data.attacker.org_id])
diff --git a/modules/standard/track/track_controller.py b/modules/standard/track/track_controller.py
index d3eb25f..fe046d6 100644
--- a/modules/standard/track/track_controller.py
+++ b/modules/standard/track/track_controller.py
@@ -419,8 +419,8 @@ class TrackController(BaseModule):
"ai_level=VALUE(ai_level), org_name=VALUE(org_name), "
"org_id=VALUE(org_id), org_rank_name=VALUE(org_rank_name), "
"org_rank_id=VALUE(org_rank_id), source=VALUE(source), "
- "last_updated=VALUE(last_updated)", data)
- cur.executemany("INSERT INTO track_org_members (char_id, org_id) VALUES(?,?)", data2)
+ "last_updated=VALUE(last_updated)".replace("?", "%s"), data)
+ cur.executemany("INSERT INTO track_org_members (char_id, org_id) VALUES(?,?)".replace("?", "%s"), data2)
conn.commit()
for org in ours:
left = self.db.query("SELECT p.* FROM track_org_members t LEFT JOIN player p on t.char_id = p.char_id where t.org_id=? and (p.last_updated < ? OR t.org_id != p.org_id)", [org.org_id, time.time()-25*60*60, org.org_id])
@@ -491,8 +491,8 @@ class TrackController(BaseModule):
"gender, faction, profession, profession_title, ai_rank, ai_level, "
"org_id, org_name, org_rank_name, org_rank_id, dimension, head_id, "
"pvp_rating, pvp_title, source, last_updated) VALUES "
- "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", data)
- cur.executemany("REPLACE INTO track_org_members(char_id, org_id) VALUES (?, ?)", data2)
+ "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)".replace("?", "%s"), data)
+ cur.executemany("REPLACE INTO track_org_members(char_id, org_id) VALUES (?, ?)".replace("?", "%s"), data2)
self.logger.info(f"Organisation {org_name} is now being tracked!")
sender.reply(f"{org_name} is now being tracked. "
diff --git a/modules/standard/whois/character_info_controller.py b/modules/standard/whois/character_info_controller.py
index 731aef4..6d627a3 100644
--- a/modules/standard/whois/character_info_controller.py
+++ b/modules/standard/whois/character_info_controller.py
@@ -157,7 +157,7 @@ class CharacterInfoController:
with self.db.pool.get_connection() as conn:
with conn.cursor() as cur:
cur.executemany("INSERT IGNORE INTO name_history (char_id, name, created_at) "
- "VALUES (%s, %s, %s)",
+ "VALUES (%s, %s, %s)".replace("?", "%s"),
self.name_history)
self.name_history = []