Ejemplo n.º 1
0
def selecting_status():
    # Проверяем изменился ли статус всех юзеров в таблице statuses в сравнении с db.select_person_status(user_id[0])
    # если сменился то bot.send_message всем у кого этот юзер в отслеживаемых в таблице connections и обновляем статус в таблицуе statuses
    db2 = db_conn.DbAdmin2()
    db2.start_transaction()
    all_users = db2.select()
    db = db_conn.DbAdmin()
    for user_id, username, status_old, roschat_id in all_users:
        v_date, status_new = db.select_person_status(user_id)
        if status_new != status_old:
            if status_new == 1:
                answer = 'Сотрудник @[' + str(roschat_id) + ':' + username + '] вошел ' + v_date.strftime("%d.%m.%Y %H:%M:%S")
            else:
                answer = 'Сотрудник @[' + str(roschat_id) + ':' + username + '] вышел ' + v_date.strftime("%d.%m.%Y %H:%M:%S")
            observers = db2.select2(user_id)
            for cid in observers:
                bot.send_message(
                    cid=cid[0],
                    dataType='data',
                    data="{\"type\": \"text\", \"text\": \""+ answer +"\", \"keyboard\": [ [{\"text\":\"Не отслеживать\", \"callbackData\":\""+"/del;"+ username +"\"}] ]}"
                )
            db2.update(status_new, user_id)
    db2.commit_transaction()
    db2.close()
    db.close()
Ejemplo n.º 2
0
def stop_tracking(data, cid, from_callback=False):
    data = data.split(';')[1]
    db = db_conn.DbAdmin2()
    db.start_transaction()
    db.delete(cid, data)
    db.commit_transaction()
    db.close()
    return {'user_id': data, 'txt': f'{data}. Отслеживание отменено.'}
Ejemplo n.º 3
0
def set_tracking(user_id, cid):
    db2 = db_conn.DbAdmin2()
    db2.start_transaction()
    # Записываем в таблицу connections связь 
    db2.insert(cid, user_id[1], user_id[0][1], user_id[0][0])
    db2.commit_transaction()
    db2.close()
    check_user_status(user_id, cid)
Ejemplo n.º 4
0
def list_handler(data, cid):
    db = db_conn.DbAdmin2()
    db.start_transaction()
    lst = db.list_select(cid)
    db.commit_transaction()
    db.close()
    bot.send_message(
        cid=cid,
        data='Список отслеживаемых сотрудников:'
    )
    for username, roschat_id in lst:
        bot.send_message(
            cid=cid,
            dataType='data',
            data="{\"type\": \"text\", \"text\": \""+ "@[" + str(roschat_id) + ":" + username + "]" +"\", \"keyboard\": [ [{\"text\":\"Не отслеживать\", \"callbackData\":\""+"/del;"+ username +"\"}], [{\"text\":\"Статус\", \"callbackData\":\""+ username +"\"}] ]}"
        )
Ejemplo n.º 5
0
def check_user_status(user_id, cid):
    db = db_conn.DbAdmin()
    status = db.select_person_status(user_id[1])
    db.close()
    # Записываем в таблицу statuses текущий статус 
    db2 = db_conn.DbAdmin2()
    db2.start_transaction()
    db2.insert2(user_id[1], user_id[0][1], status[1], user_id[0][0])
    db2.commit_transaction()
    db2.close()
    if status[1] == 1:
        answer = 'Сотрудник @[' + str(user_id[0][0]) + ':' + user_id[0][1] + '] вошел ' + status[0].strftime("%d.%m.%Y %H:%M:%S")
    else:
        answer = 'Сотрудник @[' + str(user_id[0][0]) + ':' + user_id[0][1] + '] вышел ' + status[0].strftime("%d.%m.%Y %H:%M:%S")
    bot.send_message(
        cid=cid,
        dataType='data',
        data="{\"type\": \"text\", \"text\": \""+ answer +"\", \"keyboard\": [ [{\"text\":\"Не отслеживать\", \"callbackData\":\""+"/del;"+ user_id[0][1] +"\"}] ]}"
    )
Ejemplo n.º 6
0
def get_user_id(contact):
    if '@' in contact:
        colon = contact.find(":")
        username = contact[colon+1:-1]
        cid = contact[2:colon]
    else:
        username = contact
        db2 = db_conn.DbAdmin2()
        cid = db2.select_cid(username)[0]
        db2.close()
    if username == '':
        return None
    db = db_conn.DbAdmin()
    user_raw = db.select_person(username)
    db.close()
    if user_raw == []:
         return None
    user = [(cid, user_raw[0][0]), user_raw[0][1]]
    return user