Иконка ресурса

CounterBot - Идеальный бот для вашего Telegram чата сервера CS 1.6 2023-05-14

Нет прав для скачивания
Сообщения
23
Реакции
6
Emil добавил(а) новый ресурс:

CounterBot - Идеальный бот для вашего Telegram чата сервера CS 1.6 - Бот даёт возможность посмотреть кто играет на сервере, какая сейчас карта, и многое другое

Бот может работать нестабильно! Если вы нашли баг, пожалуйста напишите о нем в ЛС на форуме или в Телеграм

Бот имеет следующие функции:
  • Вывод списка, кол-ва игроков, а также информация о текущей карте.
  • Уведомления, о том когда поставили ту или иную карту
  • Автоподгрузку карт через FastDL
  • Относительно легкую модификацию существующих команд(убрать/добавить); есть отдельный обработчик команд
  • Работает через...
Узнать больше об этом ресурсе...
 
Сообщения
365
Реакции
8
Помог
5 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Denzer, бро критикуешь, сделай лучше, выпусти сам этот плагин, у тебя у самого плагины некоторые не допилены, я ставил твой плагин, они хорошие, но не допилены
 
Сообщения
167
Реакции
43
Предупреждения
5
Помог
2 раз(а)
можно пример?)
p.s. поставить пока нет возможности (не пишите пожалуйста «поставь и будет пример»)
 

ArKaNeMaN

Квалифицированный специалист по VipModular
Сообщения
392
Реакции
283
Помог
3 раз(а)
Почему скрипт для крона на пыхе?)
Что мешало его так же на питоне написать?
Это, кроме того, что странное решение, так ещё и добавляет зависимость в виде этого самого пыха...

Что вообще со структурой проекта? Почему её нет?))
 
Сообщения
23
Реакции
6
Denzer, я и говорю что он максимально ужасный. он писался человеком, который на тот момент в питоне был полным нулем, т.е мной
поэтому извините за ужасность кода
8 Май 2023
yamusaka, напиши в тг, кину группу с примером
8 Май 2023
ArKaNeMaN, PHP для меня был и есть простейшим я/п на котором можно что-то без заморочек написать. На Python его действительно переписать можно, но сейчас нет на это времени
структуры нет - потому что бот писался для 2х человек в оригинале, и выкладывать я его не особо планировал, но если кому то нужен - выложил, пользуйтесь
8 Май 2023
Denzer, про БД я в курсе, JSON использовался потому что этот бот был основан на другом моем боте (тоже open-source, можете на гитхабе глянуть - vagina-size-bot), и там использовался JSON :)

потом другой энтузиаст на коде этого бота сделал урезанную версию без JSON, но с использованием SQL Server
я же оставил бота на JSON, потому что сурсы модифицированного бота мне никто не давал, и я не сильно их просил
 
Сообщения
133
Реакции
154
Как по мне, с точки зрения кода проект откровенно сыроват

1) У проекта отсутствует какая-либо структура. Если бы всё кроме main-файла было закинуто в папку modules - это было бы уже неплохо

2) Как было тут уже упомянуто, скрипт для крона был сделан на PHP. Зачем? Он же не особо сложный, на Python его перегнать - задача не самая трудная. А одной крупной зависимостью станет меньше

3) Замечания по стилю кода: в Python принято использовать snake case, вы же везде camel case'ом фигачите

4) Вы в чем писали код? У вас между функциями расстояния вообще никакого нет. Где какое-либо форматирование? На такие вещи все нормальные IDE (тот же PyCharm на худой конец) обращают внимание.

5) Хотелось бы видеть какие-никакие комментарии к функциям.

6) Названия некоторых переменных: в файле main.py функция size. Вообще под size зачастую интегер подразумевается, у вас же это строка и вы с ней смайлики конгатинируете. Да и что значат переменные dickLength и vaginaDepth в этой же функции не очень ясно

7) Глобальные переменные, насколько мне известно, принято инициализировать в начале py-файла, у вас же они и в середине могут быть проинициализированы

8) В проверках пишете if sMale == 1. При этом он проинициализирован у вас как random.randint(1,100)%2. Ладно уж что можно рандомом указать 0 или 1 без дополнительных математических действий. Проверку вашу можно сократить до if isMale. Также, заметил такие сравнения
Код:
if srvmap.endswith("2x2") ==True
Зачем? Сократите до просто
Код:
if srvmap.endswith("2x2")
9) Местами делаете return там, где он не нужен. К примеру, функция updateUsers. Зачем там return 0, если там 0 в любом случае возвращаться будет? Используйте как void и будет вам счастье

10) Как тут было уже упомянуто, вы используете JSON в качестве БД, что является не худшим решением. Если хотите рабоать с БД по-лёгкому, возьмите какой-нибудь SQLite3 (там работа идет с отдельным файолом-бд и не требует сервера), хотя для такого проекта, полагаю, какой-нибудь MySQL или Postgre были бы более предпочтительными

11) Много где излишние условия / излишние else. К примеру, функция notifyAboutMap, там у вас делается return, а строкой ниже идет else и после этого опять return. Если у вас выполняется return, то к Else оно априори не перейдёт, его там можно не писать

И это было только маленькая часть замечаний по этому проекту.

Если рассматривать это дело как первый относительно сложный проект человека, который только открывает для себя Python (коим вы, как понимаю, являетесь) - можно было бы сказать, что это неплохо. Да, есть над чем работать, но и Иерусалим не в один день строился. Но вы позиционируете проект как "идеального бота для вашего Telegram чата сервера", так что и спрос с вас соответствующий. Так что вердикт таков: код фигня, идите переделывайте
 
Последнее редактирование:
Сообщения
271
Реакции
347
Помог
15 раз(а)
Выше написали по кодстайлу в основном, напишу про стек технологий, которые можно взять.

В качестве БД я бы взял PostgreSQL с ORM SQLAlchemy + Alembic для миграций.
Для фреймворка под телеграм бота можно взять асинхронный aiogram (v3).

Только нужно понимать, как работает асинк, а именно CPU-bound и IO-bound задачи.

По поводу самого бота, при добавлении бота в чат, желательно чтоб бот отправлял inline-клавиатуру с настройками под этот чат. Добавление серверов, редактирование и т.п. И чтобы все эти настройки сохранялись в БД.
 
Сообщения
23
Реакции
6
Islingiton_G, Про сыроват - согласен. Он крайне сырой.
Зачем на PHP? Отписывал выше.
Про Case - тут нет вообще никакого стандартизированного case.
Я писал код в Sublime Text, частично дописывал в nano, частично в блокноте, при публикации вырезал инфу о старом сервере в вскоде.
Да, многие IDE на такое обращают внимание. Но обращаю ли я? Нет.
Комментарии скорее всего будут, когда будет доработанная версия бота.
Size - строка там, потому что потому:)
dickLength - длинна чл..на
vaginaDepth - глубина в..ны
Потом идет случайный выбор между тем, что нам нужно - глубина, или длинна
Про это я узнал далеко не сразу:)
Мой опыт в питоне на тот момент был 1.5 проекта, что вы хотите от пхпшника который бота в первый раз пишет?)
Про ==True, то же самое.
Return я использовал, чтобы окончательно прервать работу функции, и без return я тогда вообще не писал функции
Я ещё раскрою небольшую тайну, в общем, в оригинальных сорсах там в половине мест были ;
Даже не спрашивайте зачем
БД менять в какой то момент планируется, но пока JSON работает у меня претензий к нему нет
Про else: return я в курсе

А про то что я позиционирую бота как "идеального" но не идеального по коду, давайте будем честны друг с другом
Критика кода это хорошо, но всё таки, кого волнует какой в боте код, если он не делает ничего вредоносного и что самое главное, всё работает?
Я с этой политикой и разрабатывал этого бота. Telegram-ботов я с того момента написал ещё штук 5, и там уже совсем другая архитектура.
Их исходники дать не могу, т.к это не мои личные проекты, а рабочие

Denzer
Про стек - Я бы взял максимум MySQL, SQLite, или тот же JSON. JSON в моей конструкции работает стабильно, и да это не лучший вариант, но даже MySQL как по мне будет излишне, про Postgrese я молчу. Если уж так нужен SQL - SQLite.
Про aiogram - я бы оставил Telebot, просто включил бы режим многопоточности(да, у синхронного Telebot есть многопоточность)

Админка бота возможно будет в будущем, но я не уверен.
Для маленького, и даже относительно большого паблика - текущая версия бота подойдёт идеально.
Тем более, я не уверен, что сейчас существует наилучшее решение :)
 
Сообщения
23
Реакции
6
ArKaNeMaN, Islingiton_G,


Так-то я забыл одну вещь - скрипт на PHP был давно убран, как и crontab как зависимость. Обновил тему.

Всё было перенесено на питон, в какой то момент, в какой - история умалчивает.
 
Сообщения
46
Реакции
5
i`m trying by myself, here is logs when i try install counterbot with cygwin

Administrator@*hiden-server ~
$ cd counterbot

Administrator@*hiden-server ~/counterbot
$ screen -dmS python3 main.py

Administrator@*hiden-server ~/counterbot
$ pm2 start main.py --watch
[PM2] Applying action restartProcessId on app [main](ids: [ 0 ])
[PM2] [main](0) ✓
[PM2] Process successfully started
┌────┬─────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼─────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ main │ default │ N/A │ fork │ 5968 │ 0 │ 289 │ stopped │ 0% │ 0b │ Adm… │ enabled │
└────┴─────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

i tryed to run it with

sudo alias cygstart --action=runas screen -dmS python3 main.py

without sudo screen -dmS python3 main.py

with pm2 start main.py --watch

by mp2 i got this logs...

0|main | Traceback (most recent call last):
0|main | File "C:\counterbot\main.py", line 6, in <module>
0|main | import asyncio,threading,time,json,os,requests,hashlib,sys,a2s,inspect,random,logging,telebot
0|main | ModuleNotFoundError: No module named 'requests'
PM2 | App [main:0] exited with code [1] via signal [SIGINT]
PM2 | App [main:0] starting in -fork mode-
PM2 | App [main:0] online
0|main | Traceback (most recent call last):
0|main | File "C:\counterbot\main.py", line 6, in <module>
0|main | import asyncio,threading,time,json,os,requests,hashlib,sys,a2s,inspect,random,logging,telebot
0|main | ModuleNotFoundError: No module named 'requests'
PM2 | App [main:0] exited with code [1] via signal [SIGINT]
PM2 | Script C:\counterbot\main.py had too many unstable restarts (16). Stopped. "errored"

Administrator@*hiden-server~/counterbot
$ python3 -m pip install requests --upgrade
Requirement already satisfied: requests in /usr/local/lib/python3.9/site-packages (2.30.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.9/site-packages (from requests) (2.0.12)
Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3.9/site-packages (from requests) (3.3)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/lib/python3.9/site-packages (from requests) (1.26.7)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/site-packages (from requests) (2023.5.7)

HOW ?
"requests" already instaled, does anyone know?
 
Последнее редактирование:
Сообщения
23
Реакции
6
Shadowless, I've said before that CounterBot needs, again NEEDS Linux server. Or at least, WSL.
I have no idea how Cygwin works with Python apps, so I can't guarantee any support for that.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу