grim/wasdead
Clone
Summary
Browse
Changes
Graph
Added *.exe to ignore and updated commands to now support mentions also (though goes untested as no one is live)
draft
2019-04-06, Ruin
285ce61c2d55
Added *.exe to ignore and updated commands to now support mentions also (though goes untested as no one is live)
package
main
import
(
"flag"
"fmt"
"os"
"os/signal"
"syscall"
"time"
log
"github.com/sirupsen/logrus"
"bitbucket.org/TheToyz/nowdead/database"
"bitbucket.org/TheToyz/nowdead/discord"
"bitbucket.org/TheToyz/nowdead/presence"
"bitbucket.org/TheToyz/nowdead/twitch"
)
var
(
DiscordToken
string
TwitchToken
string
DatabaseType
string
startTime
time
.
Time
db
database
.
Database
)
func
init
()
{
log
.
SetOutput
(
os
.
Stdout
)
log
.
SetLevel
(
log
.
DebugLevel
)
flag
.
StringVar
(
&
DiscordToken
,
"t"
,
""
,
"Discord Bot Token"
)
flag
.
StringVar
(
&
TwitchToken
,
"tcid"
,
""
,
"Twitch Client ID"
)
flag
.
StringVar
(
&
DatabaseType
,
"db_type"
,
"bitcask"
,
"Database type to use (default: bitcask)"
)
flag
.
Parse
()
}
func
main
()
{
db
=
database
.
Get
(
DatabaseType
)
if
len
(
DiscordToken
)
<=
0
||
len
(
TwitchToken
)
<=
0
{
log
.
Panic
(
"Discord Token and Twitch Client ID must be set"
)
}
if
len
(
TwitchToken
)
>
0
{
provider
,
err
:=
twitch
.
New
(
TwitchToken
)
if
err
!=
nil
{
log
.
Panic
(
err
)
}
presence
.
AddProvider
(
"twitch.tv"
,
provider
)
log
.
Info
(
"Added twitch provider"
)
}
// create our error channel that's used by the various clients
errChan
:=
make
(
chan
error
,
1
)
// create the discord client
dc
,
err
:=
discord
.
New
(
DiscordToken
,
db
)
if
err
!=
nil
{
fmt
.
Println
(
"error creating Discord session,"
,
err
)
return
}
dc
.
Start
(
errChan
)
defer
dc
.
Shutdown
()
log
.
Info
(
"Connected to discord"
)
// create a channel for handling unix signals
signalChan
:=
make
(
chan
os
.
Signal
,
1
)
signal
.
Notify
(
signalChan
,
syscall
.
SIGINT
,
syscall
.
SIGTERM
,
os
.
Interrupt
,
os
.
Kill
)
// start the main loop
log
.
Info
(
"Bot is now running. Press CTRL-C to exit."
)
for
{
select
{
case
err
:=
<-
errChan
:
if
err
!=
nil
{
log
.
Error
(
err
)
return
}
case
s
:=
<-
signalChan
:
log
.
Infof
(
"caught %s Exiting..."
,
s
)
return
}
}
}