add spam
This commit is contained in:
parent
b973e430cf
commit
1fd9b3a6f3
|
@ -87,7 +87,7 @@ menu_2 = types.ReplyKeyboardMarkup(
|
|||
)
|
||||
|
||||
menu_2_2_inline_add = [
|
||||
[types.InlineKeyboardButton(text="Виды сотрудничества с СПбГЭТУ ЛЭТИ им Ульянова (Ленина)]", url=INFO_MESSAGES['link_menu_2_2'])],
|
||||
[types.InlineKeyboardButton(text="Виды сотрудничества с СПбГЭТУ ЛЭТИ им Ульянова (Ленина)", url=INFO_MESSAGES['link_menu_2_2'])],
|
||||
]
|
||||
menu_2_2_inline = types.InlineKeyboardMarkup(inline_keyboard=menu_2_2_inline_add)
|
||||
#----------------------------------------
|
||||
|
|
|
@ -9,7 +9,7 @@ byebye_message = '✋ Я всегда рад помочь, обращайтес
|
|||
|
||||
menu_1_message = 'Выберите интересующий вас раздел:'
|
||||
menu_2_message = 'Если вы хотите разместить вакансию или сотрудничать с нашим университетом, ознакомьтесь с информацией здесь:'
|
||||
menu_3_message = 'Подпишись на наши каналы, чтобы не пропустить важные новости и обновления:'
|
||||
menu_3_message = 'Центр развития карьеры "ЛЭТИ" - твой путь к работе мечты! 💫 Узнай первым о вакансиях, мероприятиях и наших интерактивах с подарками! 🎁\n\nПодпишись на наши каналы, чтобы не пропустить важные новости и обновления:'
|
||||
#menu_4_message = 'Подпишись на наши каналы, чтобы не пропустить важные новости и обновления:'
|
||||
|
||||
menu_1_1_1_message = 'Всё о стажировках:'
|
||||
|
@ -20,12 +20,19 @@ menu_1_1_message = 'Выберите, что вас интересует:'
|
|||
menu_1_2_message = 'Подготовь своё резюме правильно! Советы и инструкции доступны здесь:'
|
||||
menu_1_3_message = 'Для оформления договора на практику или стажировку воспользуйтесь этим инструментом:'
|
||||
|
||||
menu_2_1_message = """Станьте партнёром СПбГЭТУ ЛЭТИ и получите доступ к следующим возможностям:\n
|
||||
- Управление вакансиями через интеграцию с hh.ru и "Работа в России".\n
|
||||
- Автоматическая обработка откликов.\n
|
||||
- Прямой доступ к студентам и выпускникам.\n
|
||||
- Участие в событиях университета.\n"""
|
||||
menu_2_2_message = 'Для обсуждения форматов сотрудничества пишите нам:\n\nsupport@facultetus.ru'
|
||||
menu_2_1_message = """Станьте партнёром СПбГЭТУ ЛЭТИ и получите доступ к
|
||||
следующим возможностям:
|
||||
|
||||
- Управление вакансиями через интеграцию с
|
||||
https://facultetus.ru/
|
||||
|
||||
- Автоматическая обработка откликов.
|
||||
|
||||
- Прямой доступ к студентам и выпускникам.
|
||||
|
||||
- Участие в карьерных событиях университета.
|
||||
По вопросам пишите на почту: ck@etu.ru"""
|
||||
menu_2_2_message = 'Для более подробного обсуждения форматов сотрудничества пишите нам:\nck@etu.ru'
|
||||
|
||||
MESSAGES = {
|
||||
'start': start_message,
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 142 KiB |
Binary file not shown.
After Width: | Height: | Size: 197 KiB |
138
server.py
138
server.py
|
@ -120,13 +120,13 @@ async def check_subscribe_spam(message_chat_id):
|
|||
# form
|
||||
#----------------------------------------
|
||||
class Form(StatesGroup):
|
||||
search_0 = State()
|
||||
waiting_for_file = State()
|
||||
waiting_for_file_pause = State()
|
||||
register = State()
|
||||
register_pause = State()
|
||||
# search_0 = State()
|
||||
# waiting_for_file = State()
|
||||
# waiting_for_file_pause = State()
|
||||
# register = State()
|
||||
# register_pause = State()
|
||||
|
||||
prespam = State()
|
||||
# prespam = State()
|
||||
spam = State()
|
||||
spam_pause = State()
|
||||
|
||||
|
@ -151,12 +151,12 @@ async def cancel_handler(message: Message, state: FSMContext) -> None:
|
|||
@dp.message(Command("start"))
|
||||
async def process_start_command(message: types.Message):
|
||||
|
||||
debug = True
|
||||
if debug:
|
||||
from debug import get_debug_info
|
||||
debug_info = get_debug_info()
|
||||
answer = "\n".join([f"{key}: {value}" for key, value in debug_info.items()])
|
||||
await message.answer(answer)
|
||||
# debug = True
|
||||
# if debug:
|
||||
# from debug import get_debug_info
|
||||
# debug_info = get_debug_info()
|
||||
# answer = "\n".join([f"{key}: {value}" for key, value in debug_info.items()])
|
||||
# await message.answer(answer)
|
||||
|
||||
checkAccess = await check_access(message)
|
||||
if checkAccess:
|
||||
|
@ -171,25 +171,18 @@ async def do_main_menu(message: Message, state: FSMContext):
|
|||
checkAccess = await check_access(message)
|
||||
if not checkAccess:
|
||||
return await message.answer(MESSAGES['usestart'])
|
||||
if txt == '/admin':
|
||||
checkAdmin = await check_admin(message.chat.id)
|
||||
if checkAdmin:
|
||||
|
||||
checkAdmin = await check_admin(message.chat.id)
|
||||
if checkAdmin:
|
||||
if txt == '/admin':
|
||||
how_users = checkuser.log_info()
|
||||
answer = (f"Пользователей зарегистрировано: {how_users[0]}\n\n"\
|
||||
f"Рассылка - /spam")
|
||||
return await message.reply(answer)
|
||||
else:
|
||||
return await message.answer(MESSAGES['usestart'])
|
||||
|
||||
# elif txt == '/spam':
|
||||
# checkAdmin = await check_admin(message.chat.id)
|
||||
# if checkAdmin:
|
||||
# answer = (f"Для кого рассылка?")
|
||||
# await message.reply(answer, reply_markup=kb.spam)
|
||||
# return await state.set_state(Form.prespam)
|
||||
# else:
|
||||
# return await message.answer(MESSAGES['usestart'])
|
||||
|
||||
elif txt == '/spam':
|
||||
answer = (f"Какой текст для рассылки?")
|
||||
await message.reply(answer, reply_markup=kb.cancel)
|
||||
return await state.set_state(Form.spam)
|
||||
# главное меню
|
||||
if txt == '🏠 Главная':
|
||||
return await message.answer(MESSAGES['start'], reply_markup=kb.main_menu)
|
||||
|
@ -226,7 +219,9 @@ async def do_main_menu(message: Message, state: FSMContext):
|
|||
# return await bot.send_photo(message.from_user.id, photo, MESSAGES['menu_2_1'])
|
||||
#return await message.answer(MESSAGES['menu_2_1'])
|
||||
elif txt == '📄 Виды сотрудничества':
|
||||
return await message.answer(MESSAGES['menu_2_2'], reply_markup=kb.menu_2_2_inline)
|
||||
photo = FSInputFile('app/photos/2_2/1.jpg') # Используем FSInputFile для локального файла
|
||||
return await bot.send_photo(message.from_user.id, photo, caption=MESSAGES['menu_2_2'], reply_markup=kb.menu_2_2_inline)
|
||||
# return await message.answer(MESSAGES['menu_2_2'], reply_markup=kb.menu_2_2_inline)
|
||||
else:
|
||||
return await message.answer(MESSAGES['usestart'])
|
||||
# Для выведения ошибок
|
||||
|
@ -237,6 +232,93 @@ async def do_main_menu(message: Message, state: FSMContext):
|
|||
print('----------------------------------------')
|
||||
#----------------------------------------
|
||||
|
||||
# spam
|
||||
#----------------------------------------
|
||||
# available_in_spam = ["Всем", "С доступом"]
|
||||
|
||||
# @dp.message(lambda message: message.text not in available_in_spam, Form.prespam)
|
||||
# async def process_invalid_prespam(message: types.Message, state: FSMContext):
|
||||
# return await message.answer("Неверный аргумент. /cancel?", reply_markup=kb.spam)
|
||||
|
||||
# @dp.message(Form.prespam, F.text)
|
||||
# @router.message(Form.prespam)
|
||||
# async def process_form_prespam(message: types.Message, state: FSMContext):
|
||||
|
||||
# if message.text == "Всем":
|
||||
# await state.update_data(prespam=1)
|
||||
# elif message.text == "С доступом":
|
||||
# await state.update_data(prespam=2)
|
||||
# else:
|
||||
# await state.clear()
|
||||
# return
|
||||
|
||||
# await state.set_state(Form.spam)
|
||||
# await message.answer("Какой текст для рассылки?", reply_markup=kb.cancel)
|
||||
|
||||
@dp.message(Form.spam, F.text)
|
||||
@router.message(Form.spam)
|
||||
async def process_form_spam(message: types.Message, state: FSMContext):
|
||||
await state.update_data(spam=message.text)
|
||||
data = await state.get_data()
|
||||
# if data['prespam'] == 2:
|
||||
# answer = f'Отправить сообщение (только с доступом):\n\n'
|
||||
# else:
|
||||
answer = f'Отправить сообщение (всем):\n\n'
|
||||
answer += data['spam']
|
||||
await bot.send_message(message.from_user.id, answer, reply_markup=kb.da)
|
||||
await state.set_state(Form.spam_pause)
|
||||
await message.answer("Отправить?", reply_markup=kb.da)
|
||||
|
||||
@dp.message(lambda message: message.text not in available_da, Form.spam_pause)
|
||||
async def process_invalid_spam(message: types.Message, state: FSMContext):
|
||||
return await message.answer("Отправить?\n\n Или /cancel ?", reply_markup=kb.da)
|
||||
|
||||
@dp.message(Form.spam_pause, F.text)
|
||||
@router.message(Form.spam_pause, F.text.in_(available_da))
|
||||
async def process_spam_pause(message: types.Message, state: FSMContext):
|
||||
data = await state.get_data()
|
||||
|
||||
chetchik_spam = 0
|
||||
checkAdmin = await check_admin(message.chat.id)
|
||||
if checkAdmin:
|
||||
# if data['prespam'] == 2:
|
||||
# if DEBUG:
|
||||
# print('Отправляем только с доступом:', data['spam'])
|
||||
# user_for_spam = checkuser.load_all_users()
|
||||
|
||||
# for s in user_for_spam:
|
||||
# access = await check_subscribe_spam(s[1])
|
||||
# if access: # Проверяем наличие подписки
|
||||
# try:
|
||||
# text_spam = data['spam']
|
||||
# # Рассылка только пользователям с подпиской
|
||||
# await bot.send_message(s[1], text_spam, parse_mode="HTML")
|
||||
# chetchik_spam += 1
|
||||
# except Exception as e:
|
||||
# if DEBUG:
|
||||
# print(f"Ошибка отправки пользователю {s[1]}: {e}")
|
||||
# pass
|
||||
# else:
|
||||
if DEBUG:
|
||||
print('Отправляем всем:', data['spam'])
|
||||
user_for_spam = (checkuser.load_all_users())
|
||||
|
||||
for s in user_for_spam:
|
||||
try:
|
||||
text_spam = data['spam']
|
||||
await bot.send_message(s[1], text_spam, parse_mode="HTML")
|
||||
chetchik_spam = chetchik_spam + 1
|
||||
except:
|
||||
if DEBUG:
|
||||
print(f"Ошибка отправки пользователю {s[1]}: {e}")
|
||||
pass
|
||||
else:
|
||||
pass
|
||||
await state.clear()
|
||||
user_info = checkuser.log_info()
|
||||
await message.reply(f"Отправлено {chetchik_spam} из {user_info[0]}", reply_markup=kb.main_menu)
|
||||
return
|
||||
#----------------------------------------
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
|
|
Loading…
Reference in New Issue