this repo has no description

feeds: use in_transaction attribute of database connection

Changed files
+2 -11
feeds
+2 -7
feeds/__init__.py
···
from datetime import datetime, timezone, timedelta
class BaseFeed:
-
def __init__(self):
-
self.in_transaction = False
-
def process_commit(self, commit):
raise NotImplementedError
···
return utc_now
def transaction_begin(self, db):
-
if not self.in_transaction:
+
if not db.in_transaction:
db.execute('BEGIN')
-
self.in_transaction = True
def transaction_commit(self, db):
-
if self.in_transaction:
+
if db.in_transaction:
db.execute('COMMIT')
-
self.in_transaction = False
def wal_checkpoint(self, db, mode='PASSIVE'):
db.pragma(f'wal_checkpoint({mode})')
-2
feeds/popular.py
···
FEED_URI = 'at://did:plc:4nsduwlpivpuur4mqkbfvm6a/app.bsky.feed.generator/popular'
def __init__(self):
-
super().__init__()
-
self.db_cnx = apsw.Connection('db/popular.db')
self.db_cnx.pragma('journal_mode', 'WAL')
self.db_cnx.pragma('wal_autocheckpoint', '0')
-2
feeds/rapidfire.py
···
FEED_URI = 'at://did:plc:4nsduwlpivpuur4mqkbfvm6a/app.bsky.feed.generator/rapidfire'
def __init__(self):
-
super().__init__()
-
self.db_cnx = apsw.Connection('db/rapidfire.db')
self.db_cnx.pragma('journal_mode', 'WAL')
self.db_cnx.pragma('wal_autocheckpoint', '0')