Beispiel #1
0
def excel_export(message):
    excel_db.clear_table()

    group = message.current_group

    students = group.users
    hws = group.homeworks

    for hw in hws:
        excel_db.add_column(str(hw.id))

    for student in students:
        if not student.is_student(group):
            continue

        excel_db.add_student(student.name)

        for hw in hws:
            completed = hw.get_completed_from_student(student)
            mark = completed.marks
            comment = completed.comment

            data = str(mark)

            if comment is not None and comment != '':
                data += ', комментарий учителя: ' + comment

            excel_db.review_on_student(student.name, str(hw.id), data)

    file_name = "/tmp/mark_table.xlsx"

    converter.push_to_excel(file_name, group.name)

    bot.send_document(message.chat.id, open(file_name, 'rb'))
Beispiel #2
0
def upload_homework(message):
    chat_id = message.chat.id
    homework = session.query(Homework).get(message.text)

    bot.send_document(message.chat.id, homework.file_telegram_id)

    send_main_menu(message)
Beispiel #3
0
def sendLogs(update, context):
    if update.effective_message.from_user.id == OWNER_ID:
        with open('log.txt', 'rb') as f:
            bot.send_document(document=f,
                              filename=f.name,
                              reply_to_message_id=update.message.message_id,
                              chat_id=update.message.chat_id)
Beispiel #4
0
def sendLogFile(bot, update: Update):
    with open("log.txt", "rb") as f:
        bot.send_document(
            document=f,
            filename=f.name,
            reply_to_message_id=update.message.message_id,
            chat_id=update.message.chat_id,
        )
def sendLogFile(bot, update: Update):
    with open('log.txt', 'rb') as f:
        bot.send_document(document=f, filename=f.name,
                          reply_to_message_id=update.message.message_id,
                          chat_id=update.message.chat_id)
    with open('aria_log.txt', 'rb') as f:
        bot.send_document(document=f, filename=f.name,
                          reply_to_message_id=update.message.message_id,
                          chat_id=update.message.chat_id)
Beispiel #6
0
def handler_export(update: Update, context: CallbackContext):
    user = session.query(User).filter(
        User.telegram_user_id == update.message.from_user.id).first()
    xls_maker = XlsMaker(user)
    xls = xls_maker.make_xlx_file()
    with tempfile.TemporaryDirectory() as tmpdirname:
        save_path = os.path.join(
            tmpdirname,
            "{}.xlsx".format(get_lifetime_user(user, datetime.datetime.now())))
        xls.save(save_path)
        bot.send_document(chat_id=update.message.from_user.id,
                          document=open(save_path, 'rb'))
Beispiel #7
0
def send_task(chat_id):
    point = view.point.cur_point(chat_id)
    bot.send_message(chat_id, point.task)
    for file in view.file.get_files_with_point(point):
        if file.file_type == PHOTO_TYPE:
            bot.send_photo(chat_id, file.file_id)
        elif file.file_type == DOCUMENT_TYPE:
            bot.send_document(chat_id, file.file_id)
        elif file.file_type == AUDIO_TYPE:
            bot.send_audio(chat_id, file.file_id)
        else:
            print('send_task problem: ', point, file.file_id, file.file_type)
Beispiel #8
0
def check_next2(message):
    chat_id = message.chat.id
    homework = states[chat_id]

    username = message.text  # type: str

    if username.endswith(' (+)'):
        username = username[:-4]

    user = session.query(User).filter_by(name=username).one()
    completed_homework = session.query(CompletedHomework).filter_by(
        student_id=user.id, homework_id=homework.id).one()
    states[chat_id] = completed_homework

    bot.send_document(message.chat.id, completed_homework.file_telegram_id)

    bot.send_message(chat_id, "Оценка за дз:")
    bot.register_next_step_handler(message, check_next3)
Beispiel #9
0
def func_create_report(message):
    try:
        if message.text == content.BUTTON_MAIN_MENU:
            menu.first_menu(message)
        elif message.text == content.BUTTON_GENREPORT:
            menu.create_report(message)
            data = database.Database.show_transaction(database.DATABASE_NAME, '9999999')
            print(data[0]['summ'])
            # calculate summ and add human
            comment = {'':'Сумма всех транзакций в рублях:'}
            datawsumm = {'': 0}
            for pay in data:
                if pay['summ'] != '':
                   datawsumm[''] += pay['summ']

            data.append(comment)
            data.append(datawsumm)
            # format to human

            file = open(filename, "w", newline='')
            with file as f:
                 df = pd.DataFrame(data)  # transpose to look just like the sheet above
                 df.to_csv(filename)
                 df.to_excel(nicefile)
            file.close()

            # send to user

            file = open(nicefile, 'rb')
            bot.send_document(message.chat.id, file)
            file.close()

            print('Отчет сгенерирован')

        else:
            bot.send_message(message.chat.id, 'Неправильный формат сообщения, перечитайте форму')
            menu.create_report(message)



    except Exception as e:
        # print(e)
        bot.reply_to(message, 'Error create report button. Contact the administrator and please DONT use bot.')
def sendLogs(update, context):
    with open('log.txt', 'rb') as f:
        bot.send_document(document=f, filename=f.name,
                        reply_to_message_id=update.message.message_id,
                        chat_id=update.message.chat_id)
Beispiel #11
0
def main(message: Message):
    bot.send_chat_action(action='typing', chat_id=message.from_user.id)
    if dbm.get_user_language(message.from_user.id) == "NONE" and (
            message.text != "English" and message.text != "Русский"):
        bot.send_message(message.chat.id, text.UNDEFINED_LANGUAGE)
    elif dbm.get_user_game_state(user_id=message.from_user.id) == "gaming" and \
            dbm.get_user_game_combination(user_id=message.from_user.id) != "NONE":
        if RepresentsInt(message.text) and len(message.text) == 4:
            message_out = check_matching(message)
            # bot.send_message(message.chat.id, message_out)
            bot.reply_to(message, message_out)
            step = int(
                dbm.get_user_game_steps(user_id=message.from_user.id)) + 1
            dbm.update(user_id=message.from_user.id,
                       item='Steps',
                       new_value=str(step))
            if message_out == 'You won!' or message_out == 'Ты выиграл!':
                bot.send_sticker(chat_id=message.chat.id,
                                 data=text.get_random_cat_sticker())
                bot.send_document(chat_id=message.chat.id,
                                  data=text.get_random_cat_gif())
                games = int(
                    dbm.get_user_games_number(user_id=message.from_user.id))
                dbm.update(user_id=message.from_user.id,
                           new_value=str(games + 1),
                           item='Games')
                dbm.append_game_in_table(
                    ID=message.from_user.id,
                    Game_number=games + 1,
                    Number_of_steps=dbm.get_user_game_steps(
                        user_id=message.from_user.id))
                dbm.update(user_id=message.from_user.id,
                           new_value='NONE',
                           item='Steps')
                dbm.update(user_id=message.from_user.id,
                           new_value='NONE',
                           item='Game_comb')
                dbm.update(user_id=message.from_user.id,
                           new_value='NONE',
                           item='Game_status')
                if str(dbm.get_user_best_score(
                        user_id=message.from_user.id)) == 'NONE' or step < int(
                            dbm.get_user_best_score(
                                user_id=message.from_user.id)):
                    dbm.update(user_id=message.from_user.id,
                               new_value=str(step),
                               item='Best_score')
                    dbm.update(user_id=message.from_user.id,
                               item='Game_status',
                               new_value=states.NONE)
                    dbm.update(user_id=message.from_user.id,
                               item='Game_comb',
                               new_value=states.NONE)
                    dbm.update(user_id=message.from_user.id,
                               item='Steps',
                               new_value=states.NONE)
        elif RepresentsInt(message.text) and len(message.text) != 4:
            message_text = getattr(
                text,
                dbm.get_user_language(message.from_user.id) +
                "_send_correct_comb")()
            # bot.send_message(message.chat.id, message_text)
            bot.reply_to(message, message_text)
        else:
            message_text = getattr(
                text,
                dbm.get_user_language(message.from_user.id) +
                "_send_your_comb")()
            # bot.send_message(message.chat.id, message_text)
            bot.reply_to(message, message_text)
    else:
        message_text = getattr(
            text,
            dbm.get_user_language(message.from_user.id) + "_undefined_text")()
        #bot.send_message(message.chat.id, message_text)
        bot.reply_to(message, message_text)
Beispiel #12
0
def sendLogs(update, context):
    LOGGER.info('UID: {} - UN: {} - MSG: {}'.format(update.message.chat.id, update.message.chat.username, update.message.text))
    with open('log.txt', 'rb') as f:
        bot.send_document(document=f, filename=f.name,
                        reply_to_message_id=update.message.message_id,
                        chat_id=update.message.chat_id)
Beispiel #13
0
def send_cat(message):
    cat = get_cat()
    if str(cat).split('.')[-1] == 'gif':
        bot.send_document(message.chat.id, cat)
    else:
        bot.send_photo(message.chat.id, cat)
def send_database(telegram_user_id):
    bot.send_document(chat_id=telegram_user_id,
                      document=open(os.path.join(os.getcwd(), 'database.db'), 'rb'),
                      disable_notification=True)