dtbot

command module
v0.0.0-...-e7fbf99 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2020 License: GPL-3.0 Imports: 14 Imported by: 0

README

Discord Tools Bot

Go report Build Status Scrutinizer Quality Score FOSSA Status Discord Bots

Musor stats on Discord Bot List

Documentation

Used APIs and external software

Bot's features

  • Shows weather
  • Translate words
  • Shows news
  • Shows currency
  • Makes polls
  • Plays music from Youtube
  • Plays music from online radio stations
  • Announcing if Twitch stream is started
  • Greetings new users

How to use

Bot commands

To use the !b or !cron commands you need to create a guild role named bot.admin and add it to you!

Command Description
!v join Add bot into you voice channel
!v leave Remove bot from voice channel
!b clear [from_num] Remove bot's messages !b clear or !b clear 3 removes all messages from 3rd message
!b setconf [parameter] [value] Sets the bot configuration for your channel.
!help Shows help
!help [command] Detail help !help y
!help bot.admin Shows help how get bot.admin role
!play [youtube_url] Adds track (or playlist) in queue and start playing
!y add [song] Adds song from youtube or soundcloud
!y clear Removes all songs from queue
!y play Starts playing queue
!y stop Stops playing queue
!y skip Skipping one song
!y list List of songs in queue
!r play [radio_station] Plays specified network radio station !r play http://air2.radiorecord.ru:9003/rr_320
!r stop Stops radio
!w [place] Shows the weather in a specified location !w New York
!n [category] Displays news in the specified category !n technology
!t [target_lang] [text] Translator !t ru Hello world
!c Shows currencies (default from config)
!c list Shows list of available currencies
!c [currency] Shows specified currency !c USD EUR
!p new [fields] Creates new poll !p new field one | field two | field three
!p vote [field_num] Votes in poll
!p end Ends poll and shows results
!m [map/sat] [location] Sends location image from yandex map !m map New-York or !m sat New-York
!cron add [cron_time] [command] Creates cron job for command !cron add 0 0 12 * * * !w Chelyabinsk - everyday in 12:00 UTC 0 use command !w
!cron list Shows cron jobs
!cron remove [id] Removes cron job by ID !cron remove 1
!geoip [some_ip_address] Shows geographic information about IP
!twitch add [twitch_login] Adds streamer in announcer
!twitch remove [twitch_login] [custom_announce_message] Removes streamer from announcer (custom message is optional)
!greetings add [text] Adds new greetings message with specified text
!greetings remove Removes greetings message
!greetings test Sends you a greetings message

Set config parameters

Parameter Description
general.language [string] Sets bot language
general.timezone [num] Sets bot timezone
general.nick [string] Sets bot nickname
embed.color [hex color like #007700] Sets bot embed color
news.country [string] Sets bot news country
weather.city [string] Sets default city for weather

Build for docker

Easy way to build docker image for Ubuntu:

Install MongoDB and set environment variable with mongo connection string

export MONGO_CONN=mongodb://user:password@some-host.com/dtbot

Clone repository and move inside app directory.
Compile app with command:

go build

Create config.toml file from sample sample.config.toml

[weather]
# Old weather API token (deprecated and unused now)
WeatherToken = "OpenWeatherMap API Token"
# Default forecast city
City = "Moscow"

[news]
ApiKey = "Api key from Newsapi.org"
Country = "us"
Articles = 5

[translate]
ApiKey = "Yandex Translate API key"

[general]
GeonamesUsername = "Username from Geonames.org"
Language = "en"
# UTC 0 + Timezone
Timezone = 5
Game = "Half-Life 3"
# Default embed color (Hex color converted to int)
EmbedColor = 4039680
ServiceURL = "https://youtube.com"
MessagePool = 10
DatabaseName = "dtbot"
GeocodingApiKey = "yandex_geocode_api_key"

[currency]
Default = ["USD", "EUR"]

[metrics]
# InfluxDB connection address
Address = "http://some_server.com:8086"
Database = "dtbot"
User = "user"
Password = "password"
# Discord Bot List
[dbl]
Token = "discordbots.org_bot_token"
# Twitch announcer
[twitch]
ClientID = "twitch_application_client_id"
# Weather API
[darksky]
Token = "darksky_api_token"

Make (or use my) Dockerfile:

FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install -y wget ca-certificates ffmpeg python
RUN wget https://yt-dl.org/downloads/latest/youtube-dl
RUN chmod a+rx youtube-dl
COPY . .
ENTRYPOINT ["./dtbot"]

Build docker image

docker build -t dtbot .

Add environment variable BOT_TOKEN with token of discord bot.
And run container:

docker run -d --restart always -e BOT_TOKEN=$BOT_TOKEN -e MONGO_CONN=$MONGO_CONN --name dtbot dtbot:latest

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
fun

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL