summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--photoblaster/db.py118
1 files changed, 0 insertions, 118 deletions
diff --git a/photoblaster/db.py b/photoblaster/db.py
index 35e2dd0..ea972f0 100644
--- a/photoblaster/db.py
+++ b/photoblaster/db.py
@@ -5,125 +5,7 @@ import time
import sys
import simplejson as json
-from sqlalchemy import Column, Integer, LargeBinary, String, \
- create_engine, sql, func, desc
-from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy.orm import sessionmaker, class_mapper
-_NULL = sql.null()
-Base = declarative_base()
-metadata = Base.metadata
-class ImCmd(Base):
- """defines the table class"""
- __tablename__ = 'im_cmd'
- id = Column(Integer, primary_key=True)
- date = Column(Integer)
- remote_addr = Column(String(16))
- name = Column(String(16))
- url = Column(String(256))
- dir = Column(String(2))
- oldfile = Column(String(256))
- newfile = Column(String(256))
- cmd = Column(LargeBinary)
- dataobj = Column(LargeBinary)
- tag = Column(String(50))
-
- def serialize(self, columns=None):
- """returns the class as a dictionary"""
- if not columns:
- columns = [c.key for c in class_mapper(self.__class__).columns]
- col_val = []
- for c in columns:
- if c == "dataobj":
- val = getattr(self, c)
- if val is not None:
- try:
- val = json.loads(val)
- except json.JSONDecodeError:
- sys.stderr.write("Could not decode json: %s\n" % val)
- sys.stderr.write(
- "bad value in db, id = %s\n" % getattr(self, "id")
- )
- pass
- col_val.append((c, val))
- else:
- col_val.append((c, getattr(self, c)))
- return dict(col_val)
-
-
-class Db(object):
- """wrapper for all db methods"""
- def __init__(self):
- engine = create_engine('mysql://{}:{}@{}/{}'.format(
- DB_USER,
- DB_PASSWORD,
- DB_HOST,
- DB_NAME
- ))
- self.Session = sessionmaker(bind=engine)
-
- def _get(
- self,
- columns=None,
- filter_by={},
- order_by=None,
- offset=0,
- limit=20,
- not_deleted=False
- ):
- session = self.Session()
- results = session.query(ImCmd)
- if not_deleted:
- filter_by['deleted'] = 0
- if filter_by:
- results = results.filter_by(filter_by)
- if order_by is not None:
- results = results.order_by(order_by)
- results = results.offset(offset).limit(limit)
- session.close()
- return [result.serialize(columns=columns) for result in results]
-
- def get_random(
- self, filter_by={},
- offset=0, limit=20, columns=None
- ):
- return self._get(
- columns=columns, order_by=func.random(),
- offset=offset, limit=limit)
-
- def get_by_date(
- self,
- filter_by={},
- offset=0, limit=20, columns=None
- ):
- return self._get(
- columns=columns, offset=offset, limit=limit,
- order_by=desc(
- ImCmd.date
- )
- )
-
- def insert_cmd(self, **kwargs):
- try:
- session = self.Session()
- _entry_data = {
- 'date': kwargs.get("date", int(time.time())),
- 'remote_addr': kwargs['remote_addr'] or _NULL,
- 'name': kwargs['username'] or _NULL,
- 'url': kwargs['username'] or _NULL,
- 'dir': kwargs['directory'] or _NULL,
- 'oldfile': kwargs['oldfile'] or _NULL,
- 'newfile': kwargs['newfile'] or _NULL,
- 'cmd': kwargs['cmd'] or _NULL,
- 'dataobj': kwargs['dataobj'] or _NULL,
- 'tag': kwargs['tag'] or _NULL
- }
- session.add(ImCmd(**_entry_data))
- session.commit()
- session.close()
- except Exception as e:
- sys.stderr.write("Unable to commit database entry\n")
- sys.stderr.write(str(e))