169 похожих чатов

Ребзя, я вернулся спустя несколько месяцев и апдейтнул своего бота,

который для чтения xkcd.

1) Добавил русский UI.
2) Пошерстил по интернетам русские переводы, теперь их ~+300 по сравнению с прошлой версией (а этом боте самая большая коллекция переводов в одном месте (если знаете, где еще надыбать, то напишите мне, буду премного благодарен)).
3) При выборе русского объяснение буду автоматически переводиться (причем прилично).
4) Админу можно написать, вотъ.
5) Хуева гора мелочей всяких..

Конечно же ж вылизал код (хоть @Forevka в меня и не верил). Снабдил там все комментами.

Короче хочу наклянчить у вас повторное код-ревью (сойду за джуна?), те советы были самые толковые)))

Бот: https://t.me/telexkcdbot
Код: https://github.com/coryphoenixxx/telexkcdbot

25 ответов

25 просмотров

не сочти за придирку но регистрация хэндлеров внизу кода - неуважение к читающим )

Артем Разуваев
не сочти за придирку но регистрация хэндлеров вниз...

Да нет, с чего бы. Это новый стайл написания кода

Яблоко
Да нет, с чего бы. Это новый стайл написания кода

базару нет. яж написал ИМХО ) мне просто не нравится такой подход.

self.pool.execute удачи сделать нескольк запросов в одной транзкции

Нормальные формы? А что это? async def update_bookmarks(self, user_id: int, new_bookmarks: list[int]): query = """UPDATE users SET bookmarks = $1 WHERE user_id = $2;""" upd_bookmarks_json = json.dumps(new_bookmarks) await self.pool.execute(query, upd_bookmarks_json, user_id)

tuple[int] зачем тебе возвращать тупл из одного числа? За что ты так с людьми?

пиздеж, говоришь что тупл из одного числа, возвращаешь тупл из хз какого числа чисел async def get_all_comics_ids(self) -> tuple[int]: query = """SELECT array_agg(comic_id) FROM comics;""" res = await self.pool.fetchval(query) return tuple(res) if res else ()

Tishka17
tuple[int] зачем тебе возвращать тупл из одного ч...

он подразумевал тупл состоящий только из интов

coryphoenixxx- Автор вопроса

Я не пойму, типа List[int] возвращать корректно? Судя по stackoverflow так делают, подразумевая именно список чисел

coryphoenixxx
Я не пойму, типа List[int] возвращать корректно? С...

Потому что список - мутабельный тип, и количество значений, которые он содержит, может поменяться в любое время

coryphoenixxx- Автор вопроса

Ну дык я так получаю просто список чисел от бд, а так мне компрехеншн фигачить, зачем?

Нормальные специалисты (aka Груша с Алексом да Тишкой) хуесосят за такие вещи, но я использую, и нормально.

coryphoenixxx- Автор вопроса
Aleksandr Danilov 🇺🇦
Нормальные специалисты (aka Груша с Алексом да Тиш...

Ну если серьезно в разработку идтить, то ведь знание logging более универсально, особенно если легаси

coryphoenixxx
Ну если серьезно в разработку идтить, то ведь знан...

Это и так очевидно. В своих ботах я кидаю в логуру весь вывод логгинга и дело с концом

А чем перевод делал?

coryphoenixxx- Автор вопроса

Pybabel. Не должна она пропадать, какая кнопка "перевести"?

Заметил, что при старте оно снова просит язык ввести Думаю, под это лучше сделай кнопку язык или просто команду language Ну и чтоб не менять тоже можно было, а просто нажать

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта