Topics now persist between restarts.
Rationale: Useful when reloading/restarting; previously the topics would
be just forgotten. Don't use database, as that would be an unnecessary
overkill and in any case not needed.
(Also, remove the unused `re' module import.)
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
This should prevent the accumulation of old unclaimed notes in the database,
which is possible due to notes left to misspelled nicks, to temporary nicks
used by regulars, or to one-time visitor nicks.
This allows inclusion of the usual standardSubstitute vars within factoids.
There is no config to disable this, since it is possible to escape the substitutions
by simply doubling the dollar signs, as per the python documentation:
http://docs.python.org/library/string.html#template-strings
Thus, if you want a factoid to output a literal "$channel", for example, all
you'd need to do is use "$$channel" in your factoid text, which will come out
as "$channel" when said by the bot.
Also added tests for this new behavior.
First: if an rss feed is called without the number of headlines argument,
we now have a default number of items it will output.
before, it tried to stuff the whole rss feed into the channel, which is quite
floody, if more than one 'mores' is set, or if oneToOne is false.
Second: when adding a new feed to announce, it again, tried to stuff the
whole rss feed into the channel, which ran into the same floody conditions
as above. now we have a default number of feeds to output when there's no
cached history.
Regexp.error can't directly call Value.error because it's providing extra
information, so it needs to build the InvalidRegistryValue exception itself
and raise it.
Closes: Sf#2985241
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit ef8bd817e8)
Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
This involved also updating src/conf.py to look for sqlite3 and add it to supybot.conf.databases list,
since karma uses the plugins.DB() constructor for its database, which checks the available databases list.
default required capabilities for topic changes (if topic is +t and user is not an op or halfop), are chan,op and chan,halfop
thanks jemfinch for the suggestions.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
by default, now only allows chanops, and users with admin or channel,op capability to change topics
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
first, use explicit time.strftime() instead of time.ctime, since ctime() leaves an extra space between month and date, if date is
single-digit.
second, use stftime('%Z') for timezone, old code was a bug which always displayed the daylight saving timezone name, even when it wasn't
in effect. time.daylight is not a dst flag, it is a flag for whether a dst timezone is /defined/, not if it is in effect.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
default required capabilities for topic changes (if topic is +t and user is not an op or halfop), are chan,op and chan,halfop
thanks jemfinch for the suggestions.
Regexp.error can't directly call Value.error because it's providing extra
information, so it needs to build the InvalidRegistryValue exception itself
and raise it.
Closes: Sf#2985241
Signed-off-by: James Vega <jamessan@users.sourceforge.net>