|
1 | 1 | # -*- coding: utf-8 -*-
|
2 | 2 | import re
|
| 3 | +from datetime import timedelta, datetime |
3 | 4 |
|
4 | 5 | import sqlalchemy.exc
|
5 | 6 | from pipobot.lib.known_users import KnownUser
|
@@ -50,16 +51,20 @@ def check_repost(self, sender, urls):
|
50 | 51 | if not any(i in url for i in self.repost_ignore):
|
51 | 52 | res = self.bot.session.query(RepostUrl).filter(RepostUrl.url == url).first()
|
52 | 53 | if res:
|
53 |
| - send.append('OLD! ') |
54 |
| - first = KnownUser.get_antihl(res.jid, self.bot) |
55 |
| - first_date = 'le ' + res.date.strftime('%x') + ' à ' + res.date.strftime('%X') |
56 |
| - first_date = first_date.decode("utf-8") |
57 |
| - if res.count == 1: |
58 |
| - send.append(u'Ce lien a déjà été posté %s par %s sur %s…' % (first_date, first, res.chan)) |
59 |
| - else: |
60 |
| - ret = u'Ce lien a déjà été posté %s fois depuis que %s l’a découvert, %s, sur %s…' |
61 |
| - send.append(ret % (res.count, first, first_date, res.chan)) |
| 54 | + # Do not send a message if the link was shared less than 24 hours ago |
| 55 | + if (datetime.now() - res.last_date) > timedelta(hours=24): |
| 56 | + send.append('OLD! ') |
| 57 | + first = KnownUser.get_antihl(res.jid, self.bot) |
| 58 | + first_date = 'le ' + res.date.strftime('%x') + ' à ' + res.date.strftime('%X') |
| 59 | + first_date = first_date.decode("utf-8") |
| 60 | + if res.count == 1: |
| 61 | + send.append(u'Ce lien a déjà été posté %s par %s sur %s…' % (first_date, first, first.chan)) |
| 62 | + else: |
| 63 | + ret = u'Ce lien a déjà été posté %s fois depuis que %s l’a découvert, %s, sur %s…' |
| 64 | + send.append(ret % (res.count, first, first_date, res.chan)) |
62 | 65 | res.count += 1
|
| 66 | + # Update the time someone posted the link |
| 67 | + res.last_date = datetime.now() |
63 | 68 | else:
|
64 | 69 | u = RepostUrl(url,
|
65 | 70 | self.bot.occupants.pseudo_to_jid(sender),
|
|
0 commit comments