aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/common
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/common')
-rw-r--r--scripts/common/__init__.py13
-rw-r--r--scripts/common/postgres.py28
-rw-r--r--scripts/common/queue.py22
3 files changed, 63 insertions, 0 deletions
diff --git a/scripts/common/__init__.py b/scripts/common/__init__.py
new file mode 100644
index 0000000..89977d2
--- /dev/null
+++ b/scripts/common/__init__.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python3
+''' common functions and stuff '''
+
+import os
+
+
+QUEUE = bool(os.environ.get('el_QUEUE', False))
+
+# Initialize queue
+if QUEUE is True:
+ from .queue import dbi
+else:
+ from .postgres import dbi
diff --git a/scripts/common/postgres.py b/scripts/common/postgres.py
new file mode 100644
index 0000000..bff0720
--- /dev/null
+++ b/scripts/common/postgres.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+''' common functions and stuff '''
+
+import os
+import sys
+import psycopg
+
+pg_db = os.environ['el_pg_db']
+pg_host = os.environ['el_pg_host']
+pg_user = os.environ.get('el_pg_user','')
+pg_pass = os.environ.get('el_pg_pass','')
+
+def dbi(sql, values, **kwargs):
+ ''' insert into db '''
+ verbose = bool(kwargs['verbose']) if 'verbose' in kwargs else False
+ # pylint: disable=E1129
+ with psycopg.connect(dbname=pg_db, host=pg_host, user=pg_user, password=pg_pass) as conn:
+ cur = conn.cursor()
+ if isinstance(values, list):
+ cur.executemany(sql, values)
+ elif isinstance(values, tuple):
+ cur.execute(sql, values)
+ else:
+ print('`values` is a', type(values), 'but it needs to be tuple or list')
+ sys.exit(1)
+ if verbose is True:
+ print("Inserted and/or changed", cur.rowcount, "rows into db")
+ return True
diff --git a/scripts/common/queue.py b/scripts/common/queue.py
new file mode 100644
index 0000000..e567fb4
--- /dev/null
+++ b/scripts/common/queue.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python3
+''' common functions and stuff '''
+
+import os
+import sys
+import pickle
+from litequeue import SQLQueue
+
+QUEUE_DB = os.environ.get('el_QUEUE_db', 'litequeue.db')
+
+# Initialize queue
+q = SQLQueue(QUEUE_DB, maxsize=None)
+
+def dbi(sql,values,**kwargs):
+ verbose = bool(kwargs['verbose']) if 'verbose' in kwargs else False
+
+ q.put(pickle.dumps([sql, values]))
+ if verbose is True:
+ table = sql.split(' ')[2]
+ num = 1 if isinstance(values, tuple) else len(values)
+ print("Inserted", num, "item(s) into queue for", table)
+ return True