impl: check
This commit is contained in:
parent
661146c4f6
commit
ea60e2a546
@ -172,17 +172,13 @@ func main() {
|
|||||||
// stop one torrent or more
|
// stop one torrent or more
|
||||||
go stop(&update, tokens[1:])
|
go stop(&update, tokens[1:])
|
||||||
|
|
||||||
case "stopall", "/stopall":
|
|
||||||
// stops all the torrents
|
|
||||||
go stopall(&update)
|
|
||||||
|
|
||||||
case "start", "/start":
|
case "start", "/start":
|
||||||
// starts one torrent or more
|
// starts one torrent or more
|
||||||
go start(&update, tokens[1:])
|
go start(&update, tokens[1:])
|
||||||
|
|
||||||
case "startall", "/startall":
|
case "check", "/check":
|
||||||
// starts all the torrents
|
// verify a torrent or torrents
|
||||||
go startall(&update)
|
go check(&update, tokens[1:])
|
||||||
|
|
||||||
case "stats", "/stats":
|
case "stats", "/stats":
|
||||||
// print transmission stats
|
// print transmission stats
|
||||||
@ -496,7 +492,7 @@ func info(ud *tgbotapi.Update, tokens []string) {
|
|||||||
send(info, ud.Message.Chat.ID)
|
send(info, ud.Message.Chat.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// stop takes one or more torrent's ids and stop them
|
// stop takes id[s] of torrent[s] or 'all' to stop them
|
||||||
func stop(ud *tgbotapi.Update, tokens []string) {
|
func stop(ud *tgbotapi.Update, tokens []string) {
|
||||||
// make sure that we got at least one argument
|
// make sure that we got at least one argument
|
||||||
if len(tokens) == 0 {
|
if len(tokens) == 0 {
|
||||||
@ -504,6 +500,16 @@ func stop(ud *tgbotapi.Update, tokens []string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if the first argument is 'all' then stop all torrents
|
||||||
|
if tokens[0] == "all" {
|
||||||
|
if err := Client.StopAll(); err != nil {
|
||||||
|
send("stop: error occurred while stopping some torrents", ud.Message.Chat.ID)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
send("stopped all torrents", ud.Message.Chat.ID)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
for _, id := range tokens {
|
for _, id := range tokens {
|
||||||
num, err := strconv.Atoi(id)
|
num, err := strconv.Atoi(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -525,24 +531,7 @@ func stop(ud *tgbotapi.Update, tokens []string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// stopall will stop all the torrents
|
// start takes id[s] of torrent[s] or 'all' to start them
|
||||||
func stopall(ud *tgbotapi.Update) {
|
|
||||||
torrents, err := Client.GetTorrents()
|
|
||||||
if err != nil {
|
|
||||||
send("stopall: "+err.Error(), ud.Message.Chat.ID)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := range torrents {
|
|
||||||
if status, err := Client.StopTorrent(torrents[i].ID); err != nil {
|
|
||||||
send(fmt.Sprintf("[%s] stopall: error stopping %s : %s", status, torrents[i].Name, err.Error()), ud.Message.Chat.ID)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// this will get sent no matter what.
|
|
||||||
send("stopall: success", ud.Message.Chat.ID)
|
|
||||||
}
|
|
||||||
|
|
||||||
// start takes an id of a torrent and starts it
|
|
||||||
func start(ud *tgbotapi.Update, tokens []string) {
|
func start(ud *tgbotapi.Update, tokens []string) {
|
||||||
// make sure that we got at least one argument
|
// make sure that we got at least one argument
|
||||||
if len(tokens) == 0 {
|
if len(tokens) == 0 {
|
||||||
@ -550,6 +539,17 @@ func start(ud *tgbotapi.Update, tokens []string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if the first argument is 'all' then start all torrents
|
||||||
|
if tokens[0] == "all" {
|
||||||
|
if err := Client.StartAll(); err != nil {
|
||||||
|
send("start: error occurred while starting some torrents", ud.Message.Chat.ID)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
send("started all torrents", ud.Message.Chat.ID)
|
||||||
|
return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
for _, id := range tokens {
|
for _, id := range tokens {
|
||||||
num, err := strconv.Atoi(id)
|
num, err := strconv.Atoi(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -571,21 +571,45 @@ func start(ud *tgbotapi.Update, tokens []string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// startall will start all the torrents
|
// check takes id[s] of torrent[s] or 'all' to verify them
|
||||||
func startall(ud *tgbotapi.Update) {
|
func check(ud *tgbotapi.Update, tokens []string) {
|
||||||
torrents, err := Client.GetTorrents()
|
// make sure that we got at least one argument
|
||||||
if err != nil {
|
if len(tokens) == 0 {
|
||||||
send("startall: "+err.Error(), ud.Message.Chat.ID)
|
send("check: needs an argument", ud.Message.Chat.ID)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := range torrents {
|
// if the first argument is 'all' then start all torrents
|
||||||
if status, err := Client.StartTorrent(torrents[i].ID); err != nil {
|
if tokens[0] == "all" {
|
||||||
send(fmt.Sprintf("[%s] startall: error starting %s : %s", status, torrents[i].Name, err.Error()), ud.Message.Chat.ID)
|
if err := Client.VerifyAll(); err != nil {
|
||||||
|
send("check: error occurred while verifying some torrents", ud.Message.Chat.ID)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
send("verifying all torrents", ud.Message.Chat.ID)
|
||||||
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
// this will get sent no matter what.
|
|
||||||
send("startall: success", ud.Message.Chat.ID)
|
for _, id := range tokens {
|
||||||
|
num, err := strconv.Atoi(id)
|
||||||
|
if err != nil {
|
||||||
|
send(fmt.Sprintf("check: %s is not a number", id), ud.Message.Chat.ID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
status, err := Client.VerifyTorrent(num)
|
||||||
|
if err != nil {
|
||||||
|
send("stop: "+err.Error(), ud.Message.Chat.ID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
torrent, err := Client.GetTorrent(num)
|
||||||
|
if err != nil {
|
||||||
|
send(fmt.Sprintf("[fail] check: No torrent with an ID of %d", num), ud.Message.Chat.ID)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
send(fmt.Sprintf("[%s] check: %s", status, torrent.Name), ud.Message.Chat.ID)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// stats echo back transmission stats
|
// stats echo back transmission stats
|
||||||
|
Loading…
Reference in New Issue
Block a user