From 31c4a24de0d4380212dedd2d244f6373a62a55fe Mon Sep 17 00:00:00 2001 From: klmp200 Date: Thu, 26 Jul 2018 22:53:09 +0200 Subject: [PATCH] Limit Chaos to once an hour --- commands/twitter.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/commands/twitter.go b/commands/twitter.go index 00b1903..cac9b4f 100644 --- a/commands/twitter.go +++ b/commands/twitter.go @@ -2,7 +2,7 @@ * @Author: Bartuccio Antoine * @Date: 2018-07-25 18:51:38 * @Last Modified by: klmp200 -* @Last Modified time: 2018-07-26 22:35:14 +* @Last Modified time: 2018-07-26 22:52:51 */ package commands @@ -15,9 +15,17 @@ import ( tb "gopkg.in/tucnak/telebot.v2" "strconv" "strings" + "sync" + "time" ) +type sjw struct { + usable bool + mutex sync.Mutex +} + var client *twitter.Client +var sjw_usable sjw func initTwitter() { config := oauth1.NewConfig( @@ -31,6 +39,7 @@ func initTwitter() { http_client := config.Client(oauth1.NoContext, token) client = twitter.NewClient(http_client) + sjw_usable = sjw{usable: true} } func testOrInitTwitter() { @@ -43,6 +52,13 @@ func twitterCommunicationError(m *tb.Message) { shared.Bot.Send(m.Chat, "Désolé, les serveurs de twitter sont injoignables.") } +func unlockSjw() { + time.Sleep(time.Hour) + sjw_usable.mutex.Lock() + sjw_usable.usable = true + sjw_usable.mutex.Unlock() +} + func LastTrumpTweet(m *tb.Message) { testOrInitTwitter() user, _, err := client.Users.Show(&twitter.UserShowParams{ScreenName: "realDonaldTrump"}) @@ -85,6 +101,13 @@ func TwitterTrends(m *tb.Message) { func TwitterSJW(m *tb.Message) { testOrInitTwitter() + sjw_usable.mutex.Lock() + defer sjw_usable.mutex.Unlock() + if !sjw_usable.usable { + shared.Bot.Send(m.Chat, "Arioch ne répondra pas à votre appel.") + return + } + sjw_usable.usable = false tweets, _, err := client.Search.Tweets(&twitter.SearchTweetParams{ Query: "#SJW", }) @@ -95,4 +118,5 @@ func TwitterSJW(m *tb.Message) { for _, tweet := range tweets.Statuses { shared.Bot.Send(m.Chat, tweet.Text) } + go unlockSjw() }