12 self.crs = self.cnx.cursor(); |
15 self.crs = self.cnx.cursor(); |
13 def add_bookmark(self, bk): |
16 def add_bookmark(self, bk): |
14 id = self.get_next_id('bookmarks') |
17 id = self.get_next_id('bookmarks') |
15 self.crs.execute(""" |
18 self.crs.execute(""" |
16 INSERT INTO bookmarks(id, url, name, ldesc, added) |
19 INSERT INTO bookmarks(id, url, name, ldesc, added) |
17 VALUES (%d, '%s', '%s', '%s', '%s'); |
20 VALUES (%d, %s, %s, %s, %s); |
18 INSERT INTO bookmarks_keywords(bookmark, keyword) |
21 INSERT INTO bookmarks_keywords(bookmark, keyword) |
19 VALUES (%d, %d); |
22 VALUES (%d, %d); |
20 """ % (id, bk.url, bk.name, bk.desc, bk.added, |
23 """ % (id, sql_quote(bk.url), |
21 id, 0)) |
24 sql_quote(bk.name), sql_quote(bk.desc), |
|
25 sql_quote(bk.added), id, 0)) |
22 self.cnx.commit() |
26 self.cnx.commit() |
23 return id |
27 return id |
24 def get_bookmarks(self, ids): |
28 def get_bookmarks(self, ids): |
25 qry = """ |
29 qry = """ |
26 SELECT id, url, name, ldesc, added |
30 SELECT id, url, name, ldesc, added |
43 bks.append(bk) |
47 bks.append(bk) |
44 return bks |
48 return bks |
45 def update_bookmark(self, bk): |
49 def update_bookmark(self, bk): |
46 self.crs.execute(""" |
50 self.crs.execute(""" |
47 UPDATE bookmarks |
51 UPDATE bookmarks |
48 SET url = '%s', name = '%s', |
52 SET url = %s, name = %s, |
49 ldesc = '%s', added = '%s' |
53 ldesc = %s, added = %s |
50 WHERE id = %d; |
54 WHERE id = %d; |
51 """ % (bk.url, bk.name, bk.desc, bk.added, bk.id)) |
55 """ % (bk.url, sql_quote(bk.name), |
|
56 sql_quote(bk.desc), |
|
57 sql_quote(bk.added), bk.id)) |
52 self.cnx.commit() |
58 self.cnx.commit() |
53 def update_keywords(self, id, keywords): |
59 def update_keywords(self, id, keywords): |
54 self.crs.execute(""" |
60 self.crs.execute(""" |
55 DELETE FROM bookmarks_keywords |
61 DELETE FROM bookmarks_keywords |
56 WHERE bookmark = %d AND |
62 WHERE bookmark = %d AND |
72 self.cnx.commit() |
78 self.cnx.commit() |
73 def add_keyword(self, name): |
79 def add_keyword(self, name): |
74 id = self.get_next_id('keywords') |
80 id = self.get_next_id('keywords') |
75 self.crs.execute(""" |
81 self.crs.execute(""" |
76 INSERT INTO keywords(id, name) |
82 INSERT INTO keywords(id, name) |
77 VALUES (%d, '%s'); |
83 VALUES (%d, %s); |
78 """ % (id, name)) |
84 """ % (id, sql_quote(name))) |
79 self.cnx.commit() |
85 self.cnx.commit() |
80 return id |
86 return id |
81 def get_keyword(self, id): |
87 def get_keyword(self, id): |
82 self.crs.execute(""" |
88 self.crs.execute(""" |
83 SELECT name FROM keywords |
89 SELECT name FROM keywords |
93 """ % (bk_id,)) |
99 """ % (bk_id,)) |
94 return self.crs.fetchall() |
100 return self.crs.fetchall() |
95 def update_keyword(self, id, name): |
101 def update_keyword(self, id, name): |
96 self.crs.execute(""" |
102 self.crs.execute(""" |
97 UPDATE keywords |
103 UPDATE keywords |
98 SET name = '%s' |
104 SET name = %s |
99 WHERE id = %d; |
105 WHERE id = %d; |
100 """ % (name, id)) |
106 """ % (sql_quote(name), id)) |
101 self.cnx.commit() |
107 self.cnx.commit() |
102 def remove_keyword(self, id): |
108 def remove_keyword(self, id): |
103 if id == 0: |
109 if id == 0: |
104 raise "Can't remove default keyword!" |
110 raise "Can't remove default keyword!" |
105 self.crs.execute(""" |
111 self.crs.execute(""" |
140 return self.crs.fetchall() |
146 return self.crs.fetchall() |
141 def get_next_id(self, seq_name): |
147 def get_next_id(self, seq_name): |
142 self.crs.execute(""" |
148 self.crs.execute(""" |
143 SELECT nextid FROM db_sequence WHERE |
149 SELECT nextid FROM db_sequence WHERE |
144 db_sequence.seq_name = '%s' FOR UPDATE; |
150 db_sequence.seq_name = '%s' FOR UPDATE; |
145 """ % (seq_name)) |
151 """ % (seq_name,)) |
146 id = self.crs.fetchone()[0] |
152 id = self.crs.fetchone()[0] |
147 self.crs.execute(""" |
153 self.crs.execute(""" |
148 UPDATE db_sequence SET nextid = %d |
154 UPDATE db_sequence SET nextid = %d |
149 WHERE seq_name = '%s'; |
155 WHERE seq_name = '%s'; |
150 """ % (id+1, seq_name)) |
156 """ % (id+1, seq_name)) |