Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.63 KB | None | 0 0
  1. from peewee import *
  2.  
  3. #база asteriskcdrdb (записи звонков)
  4. dbCDR = MySQLDatabase(
  5.     'asteriskcdrdb',
  6.     host='zabbix.tv100.lan',
  7.     port=3306,
  8.     user='root',
  9.     password='[eqdfv,kz',
  10.     charset='utf8mb4')
  11. #база telebot (список пользователей бота)
  12. dbTelebot = MySQLDatabase(
  13.     'telebot',
  14.     host='zabbix.tv100.lan',
  15.     port=3306,
  16.     user='root',
  17.     password='[eqdfv,kz',
  18.     charset='utf8mb4')
  19.  
  20.  
  21. class Users(Model):
  22.     id = IntegerField()
  23.     last_name = CharField()
  24.     status = CharField()
  25.     is_admin = IntegerField()
  26.  
  27.     class Meta:
  28.         database = dbTelebot
  29.         db_table = 'users'
  30.         order_by = ('last_name',)
  31.  
  32.  
  33. class CDR(Model):
  34.     call_date = DateTimeField(db_column='calldate', primary_key=True)
  35.     recording_file = CharField(db_column='recordingfile')
  36.     duration = IntegerField()
  37.     src = CharField()
  38.     dst = CharField()
  39.     disposition = CharField()
  40.     unique_id = CharField(db_column='uniqueid')
  41.  
  42.     class Meta:
  43.         database = dbCDR
  44.         db_table = 'cdr'
  45.  
  46.  
  47. class DBConnector():
  48.     @staticmethod
  49.     def adm_list_admins():
  50.         return Users.select().where(Users.is_admin == 1)
  51.  
  52.     @staticmethod
  53.     def adm_list(status):
  54.         return Users.select().where(Users.status == status)
  55.  
  56.     @staticmethod
  57.     def is_user(uid):
  58.         if len(Users.select().where(Users.id == uid)) != 0:
  59.             return True
  60.         return False
  61.  
  62.     @staticmethod
  63.     def is_admin(uid):
  64.         if DBConnector.is_user(uid):
  65.             if len(Users.select().where(Users.is_admin == 1)) != 0:
  66.                 return True
  67.         return False
  68.  
  69.     @staticmethod
  70.     def is_confirmed(uid):
  71.         if len(Users.select().where(Users.id == uid, Users.status == 'CONFIRMED')) != 0:
  72.             return True
  73.         return False
  74.  
  75.     @staticmethod
  76.     def get_user(uid):
  77.         if DBConnector.is_user(uid):
  78.             return Users.select().where(Users.id == uid)
  79.         return False
  80.  
  81.     @staticmethod
  82.     def get_call_list(phone, day, month, year, dispostition):
  83.         res = CDR.select().where(
  84.             CDR.disposition == dispostition,
  85.             (CDR.dst.contains(phone)) | (CDR.src.contains(phone)),
  86.             CDR.call_date.day == day,
  87.             CDR.call_date.month == month,
  88.             CDR.call_date.year == year).order_by(CDR.call_date)
  89.         if len(res) != 0:
  90.             return res
  91.         return False
  92.  
  93.  
  94.  
  95.  
  96. if __name__ == '__main__':
  97.     for row in DBConnector.get_call_list('4444','21', '01', '2016', 'ANSWERED'):
  98.         print(row.call_date, row.src, row.dst, row.duration, row.recording_file)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement