add hour limiter #7
This commit is contained in:
parent
cb15c9a4b4
commit
ea6f6e9fa3
17
bot.py
17
bot.py
|
@ -49,15 +49,15 @@ class BotListener(StreamListener):
|
||||||
if notification['type'] == 'mention':
|
if notification['type'] == 'mention':
|
||||||
log.debug("Got a mention")
|
log.debug("Got a mention")
|
||||||
sender = notification['account']['acct'] # Get sender name
|
sender = notification['account']['acct'] # Get sender name
|
||||||
sender_hour_filename = "limiter/hour" + sender; # Forge file for limiter
|
sender_hour_filename = "limiter/hour/" + sender; # Forge file for limiter
|
||||||
sender_minute_filename = "limiter/minute" + sender; # Forge file for limiter
|
sender_minute_filename = "limiter/minute/" + sender; # Forge file for limiter
|
||||||
|
|
||||||
if os.path.isfile(sender_hour_filename): # Check if file exist
|
if os.path.isfile(sender_hour_filename): # Check if file exist
|
||||||
log.debug("Sender file exist")
|
log.debug("Sender file exist")
|
||||||
statbuf = os.stat(sender_hour_filename)
|
statbuf = os.stat(sender_hour_filename)
|
||||||
last_edit = int(statbuf.st_mtime)
|
last_edit = int(statbuf.st_mtime)
|
||||||
ts = int(time.time())
|
ts = int(time.time())
|
||||||
if ts - last_edit > 59: # check if file is modified 1 minute after last edition
|
if ts - last_edit > 3599: # check if file is modified 1 hour after last edition
|
||||||
log.debug("file is too old")
|
log.debug("file is too old")
|
||||||
f = open(sender_hour_filename,'w')
|
f = open(sender_hour_filename,'w')
|
||||||
f.write(str(1)) # reset counter
|
f.write(str(1)) # reset counter
|
||||||
|
@ -68,7 +68,7 @@ class BotListener(StreamListener):
|
||||||
f = open(sender_hour_filename,'r+')
|
f = open(sender_hour_filename,'r+')
|
||||||
limit = int(get_parameter("limit_hour", config_file))
|
limit = int(get_parameter("limit_hour", config_file))
|
||||||
number_of_mention = int(f.read())
|
number_of_mention = int(f.read())
|
||||||
if number_of_mention < limit: # limit of mention per minute is 4
|
if number_of_mention < limit: # limit of mention per hour is limit_hour
|
||||||
log.debug("Sender have less of limit requests")
|
log.debug("Sender have less of limit requests")
|
||||||
f.seek(0)
|
f.seek(0)
|
||||||
f.write(str(number_of_mention + 1))
|
f.write(str(number_of_mention + 1))
|
||||||
|
@ -109,6 +109,11 @@ class BotListener(StreamListener):
|
||||||
else:
|
else:
|
||||||
log.debug("Sender have more of limit requests")
|
log.debug("Sender have more of limit requests")
|
||||||
can_continue = False # if number of mention is for, user can't receive anything
|
can_continue = False # if number of mention is for, user can't receive anything
|
||||||
|
file = open(sender_hour_filename,'r+')
|
||||||
|
number_of_mention = int(file.read())
|
||||||
|
file.seek(0)
|
||||||
|
file.write(str(number_of_mention - 1))
|
||||||
|
file.close()
|
||||||
f.close()
|
f.close()
|
||||||
else: # File not exist, create it and initialise it
|
else: # File not exist, create it and initialise it
|
||||||
log.debug("Sender file not exist")
|
log.debug("Sender file not exist")
|
||||||
|
@ -130,10 +135,10 @@ class BotListener(StreamListener):
|
||||||
|
|
||||||
if get_parameter("sensitive", config_file) == "yes":
|
if get_parameter("sensitive", config_file) == "yes":
|
||||||
sensitive = True
|
sensitive = True
|
||||||
else:
|
else:
|
||||||
sensitive = False
|
sensitive = False
|
||||||
media_dict = post_img(mastodon, get_parameter("default_text", config_file), log, config_file)
|
media_dict = post_img(mastodon, get_parameter("default_text", config_file), log, config_file)
|
||||||
mastodon.status_post(get_parameter("default_text", config_file), None, media_ids=[media_dict], sensitive=sensitive, visibility='public', spoiler_text=get_parameter("spoiler_text", config_file))
|
mastodon.status_post(text, None, media_ids=[media_dict], sensitive=sensitive, visibility=visibility, spoiler_text=get_parameter("spoiler_text", config_file))
|
||||||
else:
|
else:
|
||||||
log.debug("no picture send :(")
|
log.debug("no picture send :(")
|
||||||
pass
|
pass
|
||||||
|
|
Reference in a new issue