Commit 33302b4ff2c35f8b814d22f4f734721432539016
- Diff rendering mode:
- inline
- side by side
ChangeLog
(5 / 0)
|   | |||
| 1 | 1 | 2009-07-04 Krister Svanlund <krister.svanlund@gmail.com> | |
| 2 | 2 | ||
| 3 | * kofoo_mediawiki.py (do_wiki): Added indicator on search for displayed vs. number | ||
| 4 | of results. | ||
| 5 | (do_wiki): Added "in text" switch for search command to search in text instead of | ||
| 6 | title. | ||
| 7 | |||
| 3 | 8 | * kofoo_set.py: Removed 'set quit' from help description since the command has | |
| 4 | 9 | been removed. | |
| 5 | 10 |
kofoo_help.py
(7 / 9)
|   | |||
| 40 | 40 | command_level = command.get('level', 0) | |
| 41 | 41 | command_description = command.get('long help', "") | |
| 42 | 42 | command_arguments = command.get('arguments', []) | |
| 43 | help_string = "Help for command \x02%s\x02\n" % command_name | ||
| 43 | help_string = "Help for command \x02{0}\x02\n".format(command_name) | ||
| 44 | 44 | if sender_level < command_level: | |
| 45 | 45 | self.respond(server, sender, target, "You are not allowed to use this command.") | |
| 46 | 46 | return | |
| … | … | ||
| 57 | 57 | else: width = 0 | |
| 58 | 58 | for argument in command_arguments: | |
| 59 | 59 | if type(argument) is tuple: | |
| 60 | help_string += " \x02Syntax:\x02 {0:{2}} - {1}\n" % (command_name+' '+argument[0], argument[1], width) | ||
| 61 | #help_string += " \x02Syntax:\x02 %s %s - %s\n" % (command_name, argument[0], argument[1]) | ||
| 60 | help_string += " \x02Syntax:\x02 {0:{2}} - {1}\n".format(command_name+' '+argument[0], argument[1], width) | ||
| 62 | 61 | else: | |
| 63 | help_string += " \x02Syntax:\x02 {0} {1}\n" % (command_name, argument) | ||
| 64 | #help_string += " \x02Syntax:\x02 %s %s\n" % (command_name, argument) | ||
| 62 | help_string += " \x02Syntax:\x02 {0} {1}\n".format(command_name, argument) | ||
| 65 | 63 | else: | |
| 66 | help_string += " \x02Syntax:\x02 %s\n" % command_name | ||
| 64 | help_string += " \x02Syntax:\x02 {0}\n".format(command_name) | ||
| 67 | 65 | if command_description: | |
| 68 | help_string += " \x02Description:\x02 %s\n" % command_description | ||
| 66 | help_string += " \x02Description:\x02 {0}\n".format(command_description) | ||
| 69 | 67 | if command_level: | |
| 70 | help_string += " \x02Minimum level:\x02 %d\n" % command_level | ||
| 68 | help_string += " \x02Minimum level:\x02 {0}\n".format(command_level) | ||
| 71 | 69 | self.respond(server, sender, target, help_string) | |
| 72 | 70 | elif command_name == 'alias': | |
| 73 | 71 | help_string = "Aliases defined at this point is\n" | |
| 74 | 72 | for alias, command in self.globals.bot_command_alias.iteritems(): | |
| 75 | help_string += " \x02%s\x02 -> %s\n" % (alias, command) | ||
| 73 | help_string += " \x02{0}\x02 -> {1}\n".format(alias, command) | ||
| 76 | 74 | help_string += "End of alias list." | |
| 77 | 75 | self.respond(server, sender, target, help_string) | |
| 78 | 76 | elif command_name == 'modules': |
kofoo_mediawiki.py
(24 / 18)
|   | |||
| 42 | 42 | section.""", | |
| 43 | 43 | 'arguments': [("get table|list|section \"<itemname>\" on \"<pagename>\"", "Get a named item from a page on the wiki"), | |
| 44 | 44 | ("get url \"<pagename>\"", "Get URL to a specific page"), | |
| 45 | ("search \"<term>\" [max: <max results>]", "Search titels in wiki for articles"), | ||
| 45 | ("search \"<term>\"[ in text][ max: <max results>]", "Search titels in wiki for articles"), | ||
| 46 | 46 | ("add section \"<sectionname>\" [level <level>|below <parentsection>] on \"<pagename>\" [at top]", "Create a section on a page."), | |
| 47 | 47 | ("add table \"<tablename>\" in \"<parentsection>\" on \"<pagename>\": \"<col1>\"[, \"<col2>\"[..]] [at top]", "Add a table to a section"), | |
| 48 | 48 | ("add to list \"<listname>\" on \"<pagename>\": \"<item>\" [at top]", "Add an item to a list"), | |
| … | … | ||
| 97 | 97 | if args: | |
| 98 | 98 | if args[0] == 'get' and args[1:]: | |
| 99 | 99 | ### wiki get table|list|section "itemname" on "pagename" ### | |
| 100 | get_pat = re.compile(r'([\"\']?)(.*?) (on|from) ([\"\']? | ||
| 100 | get_pat = re.compile(r'([\"\'])(.*?) (on|from) ([\"\'] | ||
| 101 | 101 | if args[1] == 'table' and args[2:]: | |
| 102 | 102 | m = get_pat.match(' '.join(args[2:])) | |
| 103 | 103 | if m: | |
| … | … | ||
| 117 | 117 | pagename = m.group(5) | |
| 118 | 118 | return do_wiki_get_section(bot, server, sender, target, pagename, sectionname) | |
| 119 | 119 | elif args[1] == 'url' and args[2:]: | |
| 120 | m = re.match(r'([\"\']?)(.*?) | ||
| 120 | m = re.match(r'([\"\'])(.*?) | ||
| 121 | 121 | if m: | |
| 122 | 122 | pagename = m.group(2) | |
| 123 | 123 | return do_wiki_get_url(bot, server, sender, target, pagename) | |
| … | … | ||
| 145 | 145 | bot.respond(server, sender, target, "\x02%s\x02 is not a valid argument or not enough arguments." % args[1]) | |
| 146 | 146 | return False | |
| 147 | 147 | elif args[0] == 'search' and args[1:]: | |
| 148 | m = re.match(r'([\"\']?)(.*?)(\smax: |) | ||
| 148 | m = re.match(r'([\"\'])(.*?)(\sin text|)(\smax:?|)\s? | ||
| 149 | 149 | if m and m.group(2).strip(): | |
| 150 | 150 | search_terms = m.group(2) | |
| 151 | has_max = len(m.group(3)) > 0 | ||
| 151 | search_in = ('title', 'text')[len(m.group(3)) > 0] | ||
| 152 | has_max = len(m.group(4)) > 0 | ||
| 152 | 153 | if has_max: | |
| 153 | 154 | try: | |
| 154 | result_max = max(int(m.group(4)), 1) | ||
| 155 | result_max = max(int(m.group(5)), 1) | ||
| 155 | 156 | except Exception, e: | |
| 156 | 157 | print " - Could not convert '%s' to integer." % m.group(4) | |
| 157 | 158 | result_max = 1 | |
| … | … | ||
| 164 | 164 | else: | |
| 165 | 165 | search_terms = search_terms.decode("latin-1") | |
| 166 | 166 | try: | |
| 167 | bot.respond(server, sender, target, "\x02Search results:\x02") | ||
| 168 | results = [r['title'] for r in wiki_site.search(search_terms)] | ||
| 167 | results = [r['title'] for r in wiki_site.search(search_terms, what=search_in)] | ||
| 169 | 168 | if not results: | |
| 170 | 169 | print " - No results." | |
| 171 | 170 | bot.respond(server, sender, target, "No results.") | |
| 172 | 171 | return True | |
| 173 | width = max([len(r.encode("latin-1")) for r in results]) | ||
| 172 | width = max([len(r.encode("latin-1")) for r in results[:result_max]]) | ||
| 173 | bot.respond(server, sender, target, "\x02Search results: [{0}/{1}]\x02".format(len(results[:result_max]), len(results))) | ||
| 174 | 174 | for result in results[:result_max]: | |
| 175 | 175 | url = mw_get_url(result) | |
| 176 | 176 | if url: | |
| … | … | ||
| 213 | 213 | return False | |
| 214 | 214 | ||
| 215 | 215 | def do_wiki_add_table(bot, server, sender, target, args): | |
| 216 | add_table_pat = re.compile(r'([\"\']?)(.*?) in ([\"\']?)(.*?)\3 on ([\"\']?)(.+)\5[:;] ([\"\']? | ||
| 216 | add_table_pat = re.compile(r'([\"\'])(.*?) in ([\"\'])(.*?)\3 on ([\"\'])(.+)\5[:;] ([\"\'] | ||
| 217 | 217 | args = ' '.join(args) | |
| 218 | 218 | print args | |
| 219 | 219 | m = add_table_pat.match(args) | |
| … | … | ||
| 243 | 243 | return False | |
| 244 | 244 | ||
| 245 | 245 | def do_wiki_add_to_table(bot, server, sender, target, args): | |
| 246 | add_to_table_pat = re.compile(r'([\"\']?)(.*?) on ([\"\']? | ||
| 246 | add_to_table_pat = re.compile(r'([\"\'])(.*?) on ([\"\'] | ||
| 247 | 247 | m = add_to_table_pat.match(' '.join(args)) | |
| 248 | 248 | if m: | |
| 249 | 249 | tablename = m.group(2) | |
| … | … | ||
| 269 | 269 | return False | |
| 270 | 270 | ||
| 271 | 271 | def do_wiki_add_to_list(bot, server, sender, target, args): | |
| 272 | add_to_list_pat = re.compile(r'([\"\']?)(.*?) on ([\"\']?)(.+)\3[:;] ([\"\']? | ||
| 272 | add_to_list_pat = re.compile(r'([\"\'])(.*?) on ([\"\'])(.+)\3[:;] ([\"\'] | ||
| 273 | 273 | m = add_to_list_pat.match(' '.join(args)) | |
| 274 | 274 | if m: | |
| 275 | 275 | listname = m.group(2) | |
| … | … | ||
| 277 | 277 | new_item = m.group(6) | |
| 278 | 278 | at_top = len(m.group(7)) > 0 | |
| 279 | 279 | level = 1 | |
| 280 | return mw_add_to_list(pagename, listname, new_item, level, not at_top) | ||
| 280 | if mw_add_to_list(pagename, listname, new_item, level, not at_top): | ||
| 281 | bot.respond(server, sender, target, "Successfully added new item to list.") | ||
| 282 | return True | ||
| 283 | else: | ||
| 284 | bot.respond(server, sender, target, "Could not add to list.") | ||
| 285 | return False | ||
| 281 | 286 | else: | |
| 282 | 287 | bot.respond(server, sender, target, "Could not parse arguments.") | |
| 283 | 288 | return False | |
| 284 | 289 | ||
| 285 | 290 | def do_wiki_add_to_page(bot, server, sender, target, args): | |
| 286 | add_to_page_pat = re.compile(r'([\"\']?)(.+)[:;] ([\"\']? | ||
| 291 | add_to_page_pat = re.compile(r'([\"\'])(.+)[:;] ([\"\'] | ||
| 287 | 292 | m = add_to_page_pat.match(' '.join(args)) | |
| 288 | 293 | if m: | |
| 289 | 294 | pagename = m.group(2) | |
| … | … | ||
| 300 | 300 | return False | |
| 301 | 301 | ||
| 302 | 302 | def do_wiki_add_to_section(bot, server, sender, target, args): | |
| 303 | add_to_section_pat = re.compile(r'([\"\']?)(.*?) on ([\"\']?)(.+)\3[:;] ([\"\']? | ||
| 303 | add_to_section_pat = re.compile(r'([\"\'])(.*?) on ([\"\'])(.+)\3[:;] ([\"\'] | ||
| 304 | 304 | m = add_to_section_pat.match(' '.join(args)) | |
| 305 | 305 | if m: | |
| 306 | 306 | sectionname = m.group(2) | |
| … | … | ||
| 313 | 313 | return False | |
| 314 | 314 | ||
| 315 | 315 | def do_wiki_add_section(bot, server, sender, target, args): | |
| 316 | add_section_pat = re.compile(r'([\"\']?)(.*?)\1 (to|on) ([\"\']?)(.+)\4(\sat top|)') | ||
| 317 | add_section_level_pat = re.compile(r'([\"\']?)(.*?)\1 level ([0-9]+) (to|on) ([\"\']?)(.+)\5(\sat top|)') | ||
| 318 | add_section_parent_pat = re.compile(r'([\"\']?)(.*?) below ([\"\']?)(.*?)\3 (to|on) ([\"\']?)(.+)\6 | ||
| 316 | add_section_pat = re.compile(r'([\"\'])(.*?) (to|on) ([\"\'])(.+)\4 | ||
| 317 | add_section_level_pat = re.compile(r'([\"\'])(.*?)\1 level ([0-9]+) (to|on) ([\"\'])(.+)\5(\sat top|)') | ||
| 318 | add_section_parent_pat = re.compile(r'([\"\'])(.*?)\1 below ([\"\'])(.*?)\3 (to|on) ([\"\'])(.+)\6(\sat top|)') | ||
| 319 | 319 | m = add_section_parent_pat.match(' '.join(args)) | |
| 320 | 320 | if m: | |
| 321 | 321 | sectionname = m.group(2) |

