Giter VIP home page Giter VIP logo

centr_zainyatosti_bot2's Introduction

centr_zainyatosti_bot2's People

Contributors

ukizet avatar

Watchers

 avatar

centr_zainyatosti_bot2's Issues

Крч меню вакансій працює неправильно якщо є всього 6 вакансій, і працює правильно якщо є 10 вакансій. Це треба виправити. Видає помилку `list index out of range`

Шлях

centr_zainyatosti_bot2\handlers\client\classes\menu_handlers.py display_menu

Що я очікую

Користувач натискає на кнопку "далі" в меню і якщо вакансій в базі наприклад 6, то користувачу просто показується 2 сторінка меню з однією шостою вакансією

Як все зараз працює

Користувач натискає на кнопку "далі" і якщо вакансій не 10, то бот виводить шосту вакансію і потім видає помилку list index out of range, тому що бот намагається звернутися до другої вакансії щоб змінити друге повідомлення, а в списку вакансій до якого звертається бот всього одна вакансія

Як можна спробувати вирішити

В циклі проходитись не по айдішникам, а по вакансіям. Це не працює, ну тобто працює, але хуйово. Типу там перші дві вакансії змінюються, додається ця інлайн клавіатура і далі просто залишаються вакансії з попередньої сторінки з інлайн клавою

image

Можна спробувати замість 5 повідомлень, відправляти одне

крч треба тепер зробити так щоб якщо вакансій на наступній сторінці нема, то при натисканні кнопки "далі" лише вспливало повідомлення "на наступній сторінці нічого немає"

Як я все вирішив

Зробив так щоб бот відправляв не 5 повідомлень, а одне

якась лажа з логікою додавання імен до self.condition в файлі filters.py

Крч можна додавати імена з циклу в якийсь список(наприклад можна робити це в кінці циклу і назвати це old_names), і потім перевіряти наявність імен по яким буде проходитись цикл, в цьому списку. І якщо нові імена такіж як в списку old_names, то нічого не робити

Зробити так щоб від одного користувача бот приймав 1 запит в секунду. Тобто зробити так щоб не можна було спамити запитами, і тим самим шкодити боту

Спроба друга

Крч можна це все зробити за допомгою селері, типу добавляючи запит в чергу

Спроба перша

  • Дізнатися шо таке middlewares
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Text
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from asyncio import Queue

bot = Bot(token='TOKEN')
dp = Dispatcher(bot, storage=MemoryStorage())
queue = Queue()

class UserRequest(StatesGroup):
    waiting_for_request = State()

@dp.message_handler(commands=['start'])
async def start_command(message: types.Message):
    await message.reply("Привіт! Я готовий обробляти твої запити.")

@dp.message_handler(commands=['request'])
async def request_command(message: types.Message):
    await UserRequest.waiting_for_request.set()
    await message.reply("Введи свій запит:")
    
@dp.message_handler(state=UserRequest.waiting_for_request)
async def process_request(message: types.Message, state: FSMContext):
    await state.finish()
    await message.reply("Запит додано до черги.")
    await queue.put(message.text)

async def process_queue():
    while True:
        request = await queue.get()
        # Обробка запиту
        await bot.send_message(chat_id=YOUR_CHAT_ID, text=request)
        queue.task_done()

if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)
    dp.loop.create_task(process_queue())

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.