Giter Club home page Giter Club logo

evil-bot's Introduction

Злой Бот

Привет, это репозиторий лучшего бота в телеге!:heart_eyes:
Бот многофункционален и может работать в нескольких чатах одновременно!:yum:
Можете добавить @zloychatbot в свой чат или склонировать репозиторий для создания своего!:star_struck:

Возможности Злого Бота

На данный момент бот имеет в своем арсенале следующие возможности:

Капча 😲

Для работы боту необходимы права администратора в чате!

В бот встроена капча для новых юзеров в чате и приветственное сообщение.
Также проверяется есть ли юзер в списке CAS. 👮

Распознавание речи 🗣️

С помощью VK Cloud Solutions. Бот может распознавать голосовые сообщения.

Конвертация видео

Бот автоматически сконвертирует видео в mp4 из других форматов

Команды 🧐

  • /statistic - статистика сообщений юзера в чате;
  • /top10 - топ 10 спамеров в чате;
  • /me - бот будет писать за тебя;
  • /ktozloy - находит злого юзера в чате;
  • /f - отдать честь;
  • /resolve или /r - решает сложные вопросы;
  • /currency или /cur - перевод валюты;
  • /time - текущее время;
  • /sed - работа со строкой с помощью sed;
  • /switch_gender - сменить пол юзера;
  • /continue - продолжить текст с помощью GPT-3;

Для работы следующих команд нужно быть администратором чата и боту необходимы права администратора:

  • /block_stickerpack - заблокировать стикерпак в чате;
  • /unblock_stickerpack - разблокировать стикерпак в чате;

Тригеры 😎

У бота есть обширный список слов тригеров на которые он реагирует и отвечает.

Webhook 😋

Также бот умеет в webhook:

  telegram.bot.webhook.url = ""
  telegram.bot.webhook.port = 8080

Запуск своего бота 🤓

Можно запустить бота напрямую на Heroku или самостоятельно!

Запуск на Heroku 💃

Нажимаем на кнопку и переходим к настройкам
Deploy

Настройка Heroku 🧑‍🔧

Подробнее

Устанавливаем Config Vars

Ключ API полученный от Fixer.io

  FIXER_API_KEY

Ключ API полученный от LocationiQ.com

  LOCATIONIQ_API_KEY

Токен телеграм бота полученный от BotFather

  TELEGRAM_BOT_TOKEN

API полученный от VK Cloud Solutions.

  VK_API_KEY

Адрес вашего приложения Heroku: «https:// app-name .herokuapp.com/».

  TELEGRAM_BOT_WEBHOOK_URL

Вот и всё ваш бот готов!

Самостоятельный запуск 👨‍💻

Подробнее

Загрузка 📈

Устанавливаем JDK если ее нет, минимальная версия: 8.
Клонируем репозиторий с GitHub.

Запуск бота с помощью docker-compose :godmode:

Бота и БД можно запустить в контейнерах с помощью Docker и docker-compose. Для этого необходимо заполнить файл bot.env. (см пример в sample_bot.env, описание полей ниже)

После этого стартуем бота с помощью docker-compose up -d

Настройка :suspect:

Для запуска необходимо заполнить следующие поля в application.properties или задать переменные окружения:

Токен телеграм бота :rage1:

Токен телеграм бота полученный от BotFather

application.properties:

  telegram.bot.token =

Окружение:

  export TELEGRAM_BOT_TOKEN=

Ключ сервиса для конвертации валют :goberserk:

Ключ API полученный от Fixer.io

application.properties:

  fixer.api.key =

Окружение:

  export FIXER_API_KEY=

Ключ сервиса для определения времени :finnadie:

Ключ API полученный от LocationiQ.com

application.properties:

  locationiq.api.key =

Окружение:

  export LOCATIONIQ_API_KEY=

Ключ сервиса для распознавания речи :feelsgood:

Ключ API полученный от VK Cloud Solutions.

В разделе "Машинное обучение"->"Cloud Voice" и генерируем сервисный токен.

application.properties:

  vk.api.key =

Окружение:

  export VK_API_KEY=

Настройка базы данных :hurtrealbad:

Данную операцию можно пропустить если производить запуск с помощью docker-compose.

Подробнее

Настройка базы данных, используется СУБД PostgreSQL

application.properties:

  spring.datasource.url =
  spring.datasource.username =
  spring.datasource.password =

Окружение:

  export SPRING_DATASOURCE_URL=
  export SPRING_DATASOURCE_USERNAME=
  export SPRING_DATASOURCE_PASSWORD=

Например:

Пример docker-compose для создания базы данных

  version: '3.8'
  services:
      evil_bot_db:
          container_name: evil_bot_db_container
          image: postgres:13-alpine
          restart: always
          environment:
              POSTGRES_USER: evil_bot
              POSTGRES_PASSWORD: evil_bot_pass
              POSTGRES_DB: evil_bot_db
          ports:
              - "5432:5432"
          volumes:
              - pg_data:/var/lib/postgresql/data/
  volumes:
      pg_data:

Соответственное заполнение полей для этого примера:

  spring.datasource.url = jdbc:postgresql://localhost:5432/evil_bot_db
  spring.datasource.username = evil_bot
  spring.datasource.password = evil_bot_pass

или

  export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/evil_bot_db
  export SPRING_DATASOURCE_USERNAME=evil_bot
  export SPRING_DATASOURCE_PASSWORD=evil_bot_pass

Запуск 🚀

После всех настроек приступим к запуску!

Тестовый запуск 🐌

для Unix

  ./gradlew bootRun 

для Windows

  ./gradlew.bat bootRun

Если все прошло успешно, то можно приступить к сборке! 😋

для Unix

  ./gradlew bootJar

для Windows

  ./gradlew.bat bootJar

А теперь запускаем в ./build/libs! 👨‍💻

для Unix

  cd ./build/libs
  java -jar evil-bot-1.0-SNAPSHOT.jar

для Windows

  cd ./build/libs
  java.exe -jar evil-bot-1.0-SNAPSHOT.jar

Лицензия 💬

MIT License

evil-bot's People

Contributors

defman21 avatar djaler avatar insanusmokrassar avatar patakin13 avatar renovate-bot avatar renovate[bot] avatar senpos avatar tujh2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

evil-bot's Issues

Капча на основе кубика

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

Использование reply методов

RequestExecutor предоставляет методы для ответа на сообщение. Нужно использовать их вместо отправки сообщения с указанием replyMessageId

Replace Markdown with MarkdownV2

I have reviewed code in this library a little bit and find that here MarkdownParseMode was used. So, currently it is recommended to use MarkdownV2ParseMode (or simply MarkdownV2 which is the same) due to the fact, that Markdown do not support including of styles inside of other styles and have no underline and strikethrough styles on Telegram side (it is emulated on the library side with special unicode characters)

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • build(deps): update kotlin to v1.9.20 (org.jetbrains.kotlin.plugin.spring, org.jetbrains.kotlin.jvm)
  • fix(deps): update dependency dev.inmo:tgbotapi to v9.3.0
  • build(deps): update plugin org.springframework.boot to v3
  • chore(deps): update openjdk docker tag to v21
  • chore(deps): update postgres docker tag to v16
  • ci(deps): update actions/checkout action to v4
  • ci(deps): update appleboy/ssh-action action to v1
  • fix(deps): update resilience4j to v2 (major) (io.github.resilience4j:resilience4j-ratelimiter, io.github.resilience4j:resilience4j-kotlin)
  • 🔐 Create all rate-limited PRs at once 🔐

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

docker-compose
docker-compose.yml
  • postgres 15-alpine
dockerfile
Dockerfile
  • openjdk 11-jdk-slim-bullseye
  • openjdk 11-jre-slim-bullseye
github-actions
.github/workflows/deploy.yml
  • actions/checkout v3
  • appleboy/ssh-action v0.1.5
.github/workflows/gradle.yml
  • actions/checkout v3
  • actions/setup-java v3
gradle
gradle.properties
settings.gradle
build.gradle.kts
  • org.jetbrains.kotlin.jvm 1.8.21
  • org.jetbrains.kotlin.plugin.spring 1.8.21
  • org.jetbrains.kotlin.plugin.jpa 1.8.21
  • org.springframework.boot 2.7.0
  • io.spring.dependency-management 1.0.11.RELEASE
  • dev.inmo:tgbotapi 9.0.0
  • io.ktor:ktor-server-netty 2.3.2
  • io.ktor:ktor-client-apache 2.3.2
  • io.ktor:ktor-client-content-negotiation 2.3.2
  • io.ktor:ktor-client-logging 2.3.2
  • io.ktor:ktor-serialization-jackson 2.3.2
  • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.6.4
  • io.sentry:sentry-spring-boot-starter 4.3.0
  • org.unix4j:unix4j-command 0.6
  • io.github.resilience4j:resilience4j-kotlin 1.7.1
  • io.github.resilience4j:resilience4j-ratelimiter 1.7.1
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 7.2

  • Check this box to trigger a request for Renovate to run again on this repository

Игнорируется форматирование

При выполнении команды /sed игнорируется форматирование исходного сообщения, а так же если оно есть при выполнении команды.
Снимок экрана 2021-05-30 144857

Капча на основе опроса

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

Ненужная прослойка TelegramClient

Этот компонент был написан в то врермя, когда для отправки запросов нужно было создавать объекты и дёргать RequestsExecutor.execute. Сейчас сам RequestsExecutor предоставляет методы-расширения для всего, что нужно, поэтому от лишней прослойки можно избавиться, дёргая в напрямую RequestsExecutor

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: undefined. Note: this is a nested preset so please contact the preset author if you are unable to fix it yourself.

Работа с text entities напрямую

После релиза версии 0.30.1 нужно будет заменить использование html/markdown для форматирования на прямое формирование entities

Кик при непрохождении капчи вместо бана

Сейчас, если человек, допустим, тупанул и неправильно проголосовал, то он не может заново войти в группу, так как бот его банит. Нужно вместо этого просто кикать

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.