Fix casing (again)
This commit is contained in:
parent
965e0481ec
commit
f3eef86db5
23
src/db.py
23
src/db.py
@ -884,8 +884,31 @@ def _conn():
|
|||||||
with _ts.conn:
|
with _ts.conn:
|
||||||
c = _ts.conn.cursor()
|
c = _ts.conn.cursor()
|
||||||
c.execute("PRAGMA foreign_keys = ON")
|
c.execute("PRAGMA foreign_keys = ON")
|
||||||
|
# remap NOCASE to be IRC casing
|
||||||
|
_ts.conn.create_collation("NOCASE", _collate_irc)
|
||||||
return _ts.conn
|
return _ts.conn
|
||||||
|
|
||||||
|
def _collate_irc(s1, s2):
|
||||||
|
# treat hostmasks specially, otherwise call irc_lower on stuff
|
||||||
|
if "@" in s1:
|
||||||
|
hl, hr = s1.split("@", 1)
|
||||||
|
s1 = irc_lower(hl) + "@" + hr.lower()
|
||||||
|
else:
|
||||||
|
s1 = irc_lower(s1)
|
||||||
|
|
||||||
|
if "@" in s2:
|
||||||
|
hl, hr = s2.split("@", 1)
|
||||||
|
l2 = irc_lower(hl) + "@" + hr.lower()
|
||||||
|
else:
|
||||||
|
s2 = irc_lower(s2)
|
||||||
|
|
||||||
|
if s1 == s2:
|
||||||
|
return 0
|
||||||
|
elif s1 < s2:
|
||||||
|
return -1
|
||||||
|
else:
|
||||||
|
return 1
|
||||||
|
|
||||||
need_install = not os.path.isfile("data.sqlite3")
|
need_install = not os.path.isfile("data.sqlite3")
|
||||||
conn = sqlite3.connect("data.sqlite3")
|
conn = sqlite3.connect("data.sqlite3")
|
||||||
with conn:
|
with conn:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user