Welcome to clashcallerbot-reddit!

ClashCallerBot was made to help /r/ClashOfClans clans coordinate attacks during Clan Wars (or Clan War Leagues) from within reddit.

For example, someone wants to attack base 1 and 7, but they haven’t posted an update in over an hour and those two bases still haven’t been attacked. Is it okay to attack those bases? Did your fellow clan member die? Who knows‽

Well, if they (or someone on their behalf) had called those bases for a set period of time, you would know for certain.

Think of ClashCallerBot as an independent time keeper that runs entirely within reddit.

If not obvious enough, it’s a fork of SIlver–’s RemindMeBot. It’s a sweet (as in awesome) little program.

I plan to make a few more tweaks to make it even more useful.

Check us out on /r/ClashCallerBot.

Usage Information

Usage can be inferred from the regular expressions used to process each comment in clashcallerbotreddit.search:

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Regular expressions
clashcaller_re = re.compile(r'''
                            [!|\s]?             # prefix ! or space (optional)
                            [C|c]lash[C|c]aller # lower or camelcase ClashCaller (required)
                            [!|\s]              # suffix ! or space (required)
                            ''', re.VERBOSE)
expiration_re = re.compile(r'''
                           (?P<exp_digit>(\d){1,2})    # single or double digit (required)
                           (\s)?                       # space (optional)
                           (?P<exp_unit>minute(s)?\s|  # minute(s) (space after required)
                           min(s)?\s|                  # minute abbr. (space after required)
                           hour(s)?\s|                 # hour(s) (space after required)
                           hr(s)?\s                    # hour abbr. (space after required)
                           )+''', re.VERBOSE | re.IGNORECASE)  # case-insensitive
message_re = re.compile(r'''
                        (\s)*       # space (optional)
                        "           # opening double quote (required)
                        base(s)?    # string: base(s) (required)
                        [\W|\s]*    # non-word character or space (optional)
                        (\d){1,2}   # single or double digit (required)
                        .*          # any character after (optional)
                        "           # closing double quote (required)
                        ''', re.VERBOSE | re.IGNORECASE)  # case-insensitive

To sum:

  • The clashcaller string must be present in either lower or CamelCase with an exclamation point ! either before or after.
  • The expiration time in minutes or hours may follow either abbreviated or with full spelling with an optional space between the number and word, but mandatory space after the word: 4min. Case is ignored. If not given, defaults to 1 hour. The expiration time is limited to within 24 hours.
  • The message within quotes must follow with the singular or plural form of base and a required single or double digit number. Case is ignored. Maximum message length is 100 characters to save database space.