-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
2024-07-18 17:12:27.303137 new snippets
- Loading branch information
1 parent
985f96f
commit 9fcaa70
Showing
30 changed files
with
1,604 additions
and
1,957 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#date: 2024-07-18T17:07:01Z | ||
#url: https://api.github.com/gists/fa7af02ae19b3ab66ff27986817d9120 | ||
#owner: https://api.github.com/users/sampathk99 | ||
|
||
#!/bin/bash | ||
# Install docker | ||
apt-get update | ||
apt-get install -y apt-transport-https ca-certificates curl software-properties-common | ||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - | ||
add-apt-repository \ | ||
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ | ||
$(lsb_release -cs) \ | ||
stable" | ||
apt-get update | ||
apt-get install -y docker-ce | ||
usermod -aG docker ubuntu | ||
|
||
# Install docker-compose | ||
curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose | ||
chmod +x /usr/local/bin/docker-compose | ||
|
||
# READ MORE: https://docs.docker.com/install/linux/docker-ce/ubuntu/ | ||
# To check: grep "cloud-init\[" /var/log/syslog | ||
# OR: less /var/log/cloud-init-output.log | ||
|
||
# Manually add user to docker group | ||
# sudo usermod -aG docker $USER |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,208 @@ | ||
#date: 2024-07-18T16:51:56Z | ||
#url: https://api.github.com/gists/734f884a9f40300b14b102eb20854bcc | ||
#owner: https://api.github.com/users/BorisITZaitsev | ||
|
||
import telebot | ||
from custom_library import * | ||
|
||
|
||
bot = telebot.TeleBot("6621812434:AAGp48AQa2sGh8n0Bljpi4sOJUi-0b_IYrc") | ||
|
||
|
||
@bot.message_handler(commands=["clear_speakers"]) | ||
def clear_speakers(message): | ||
try: | ||
clear(message.chat.id) | ||
bot.send_message(message.chat.id, "Готово.") | ||
menu(message) | ||
except (KeyError, ValueError, FileNotFoundError): | ||
bot.send_message(message.chat.id, "Возникли проблемы с удалением. Операция отклонена.") | ||
menu(message) | ||
|
||
|
||
@bot.message_handler(commands=["students"]) | ||
def students(message): | ||
names = get_full_data(message.chat.id) | ||
coming_text = "" | ||
for i in names: | ||
coming_text += f"'{i}'\n" | ||
bot.send_message(message.chat.id, coming_text) | ||
menu(message) | ||
|
||
|
||
@bot.message_handler(commands=["delete"]) | ||
def delete_theme0(message): | ||
if hm_themes(message.chat.id) == 0: | ||
bot.send_message(message.chat.id, "Пока нечего удалять. Добавьте темы.") | ||
menu(message) | ||
else: | ||
msg = bot.send_message(message.chat.id, "ФИО студента, тему которого нужно удалить.", | ||
reply_markup=telebot.types.ReplyKeyboardRemove()) | ||
bot.register_next_step_handler(msg, delete_theme1) | ||
|
||
|
||
def delete_theme1(message): | ||
try: | ||
student = message.text | ||
themes = get_full_data(message.chat.id)[student] | ||
markup = telebot.types.ReplyKeyboardMarkup() | ||
if len(themes) == 1: | ||
bot.send_message(message.chat.id, "У этого студента нечего удалять. Добавьте темы.") | ||
menu(message) | ||
else: | ||
for i in range(1, len(themes)): | ||
markup.add(telebot.types.KeyboardButton(str(i))) | ||
coming_text = "Номер темы, которую нужно удалить." | ||
msg = (bot.send_message(message.chat.id, text=coming_text.format(message.from_user), reply_markup=markup)) | ||
bot.register_next_step_handler(msg, delete_theme2, student) | ||
except KeyError: | ||
bot.send_message(message.chat.id, "Появились проблемы с нахождением имени студента. Операция невозможна") | ||
menu(message) | ||
|
||
|
||
def delete_theme2(message, student_name): | ||
theme_number = int(message.text) | ||
try: | ||
theme = theme_remove(message.chat.id, student_name, theme_number) | ||
coming_text = f"Тема: '{theme}' у студента - {student_name} успешно удалена." | ||
bot.send_message(message.chat.id, coming_text) | ||
menu(message) | ||
except KeyError: | ||
bot.send_message(message.chat.id, "Возникли проблемы с удалением. Операция отклонена.") | ||
menu(message) | ||
|
||
|
||
@bot.message_handler(commands=['set_by_hand']) | ||
def set_by_hand0(message): | ||
try: | ||
further_speakers(message.chat.id) | ||
msg = bot.send_message(message.chat.id, "Пожалуйста, введите изменения. Пример:\n" | ||
"Иванов Иван Иванович - Тема1\n" | ||
"Александров Александр Александрович - Тема2") | ||
bot.register_next_step_handler(msg, set_by_hand1) | ||
except FileNotFoundError: | ||
bot.send_message(message.chat.id, "Боюсь, процесс регистрации был пройжен некорретно. Введите " | ||
"стартер заново.") | ||
|
||
|
||
def set_by_hand1(message): | ||
further_speakers(message.chat.id) | ||
changes = str(message.text).split("\n") | ||
for i in range(0, len(changes)): | ||
student = changes[i].split(" - ")[0] | ||
try: | ||
single_apply(changes[i], str(message.chat.id)) | ||
except KeyError: | ||
bot.send_message(message.chat.id, f"Нет такого студента, как {student}." | ||
f" Придётся полностью произвести операцию присваивания заново.") | ||
except IndexError: | ||
bot.send_message(message.chat.id, "Неправильный формат ввода. Повторите операцию заново.") | ||
except FileNotFoundError: | ||
bot.send_message(message.chat.id, "Боюсь, процесс регистрации был пройжен некорретно. Введите " | ||
"стартер заново.") | ||
menu(message) | ||
|
||
|
||
@bot.message_handler(commands=['get_full_base']) | ||
def send_full_data(message): | ||
try: | ||
data = get_full_data(message.chat.id) | ||
coming_text = "" | ||
for i in data: | ||
if data[i][0] == 0: | ||
coming_text += f"{i}. Всего брал(a) тем: {data[i][0]}.\n\n" | ||
else: | ||
coming_text += f"{i}. Всего брал(a) тем: {data[i][0]}. Темы:" | ||
for j in data[i][1:]: | ||
coming_text += ' "' + j + '" ' | ||
coming_text += "\n\n" | ||
bot.send_message(message.chat.id, coming_text) | ||
menu(message) | ||
except FileNotFoundError: | ||
bot.send_message(message.chat.id, "Нет такого файла. Прошу пройти инициализацию заново.") | ||
|
||
|
||
@bot.message_handler(commands=['get_further_speakers']) | ||
def send_speakers(message): | ||
coming_text = "" | ||
try: | ||
todays_speakers = further_speakers(message.chat.id) | ||
for i in todays_speakers: | ||
coming_text += f"{i} - {todays_speakers[i]}\n\n" | ||
bot.send_message(message.chat.id, coming_text) | ||
menu(message) | ||
except (telebot.apihelper.ApiException, FileNotFoundError): | ||
bot.send_message(message.chat.id, "Данный список пока пуст или инициализация пройдена неправильно.") | ||
menu(message) | ||
|
||
|
||
@bot.message_handler(content_types=["document"]) | ||
def handle_file(message): | ||
chat_id = message.chat.id | ||
file_info = bot.get_file(message.document.file_id) | ||
downloaded_file = bot.download_file(file_info.file_path) | ||
try: | ||
if message.document.file_name.split('.')[-1] != "docx": | ||
bot.send_message(chat_id, "Ты перепутал формат. Мне нужен DOCX!!!", | ||
reply_markup=telebot.types.ReplyKeyboardRemove()) | ||
else: | ||
if "тем" in message.document.file_name.lower(): | ||
src = f'C:/Users/borya/PycharmProjects/pythonProject/pythonbot_mgimo/{chat_id}/th_list.docx' | ||
with open(src, 'wb') as new_file: | ||
new_file.write(downloaded_file) | ||
connector(chat_id) | ||
bot.reply_to(message, "Супер. Раздача тем выполнена успешно.\n") | ||
else: | ||
folder(str(chat_id)) | ||
src = f'C:/Users/borya/PycharmProjects/pythonProject/pythonbot_mgimo/{chat_id}/st_list.docx' | ||
with open(src, 'wb') as new_file: | ||
new_file.write(downloaded_file) | ||
bot.reply_to(message, "Спасибо. Создаю базу данных на вашу группу.") | ||
database_create(str(chat_id)) | ||
bot.send_message(chat_id, "База данных успешно создана.") | ||
coming_text = "Ожидаю дальнейших команд или файлов с темами." | ||
bot.send_message(chat_id, coming_text) | ||
menu(message) | ||
except (AttributeError, KeyError, ValueError, FileNotFoundError): | ||
bot.send_message(chat_id, "Что-то пошло не так. Возвращаю вас в главное меню.") | ||
menu(message) | ||
|
||
|
||
@bot.message_handler(commands=['start', 'menu']) | ||
def menu(message): | ||
if not base_existence(message.chat.id): | ||
bot.send_message(message.chat.id, "Для начала пришлите список группы в формате '.docx'.", ) | ||
|
||
else: | ||
coming_text = "Обратите внимание на кнопки под клавиатурой. Вам доступны некоторые запросы." | ||
markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True) | ||
btn1 = telebot.types.KeyboardButton("Полная база") | ||
btn2 = telebot.types.KeyboardButton("След. доклады") | ||
btn3 = telebot.types.KeyboardButton("Задать вручную") | ||
btn4 = telebot.types.KeyboardButton("Удалить тему") | ||
btn5 = telebot.types.KeyboardButton("ФИО студентов") | ||
btn6 = telebot.types.KeyboardButton("Темы сданы") | ||
markup.add(btn1, btn2, btn3, btn4, btn5, btn6) | ||
bot.send_message(message.chat.id, text=coming_text.format(message.from_user), reply_markup=markup) | ||
|
||
|
||
@bot.message_handler(content_types=['text']) | ||
def text_handler(message): | ||
sense = message.text | ||
if sense == "Меню": | ||
menu(message) | ||
if sense == "След. доклады": | ||
send_speakers(message) | ||
if sense == "Задать вручную": | ||
set_by_hand0(message) | ||
if sense == "Полная база": | ||
send_full_data(message) | ||
if sense == "Удалить тему": | ||
delete_theme0(message) | ||
if sense == "ФИО студентов": | ||
students(message) | ||
if sense == "Темы сданы": | ||
clear_speakers(message) | ||
|
||
|
||
bot.polling(none_stop=True) |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.