def from_argparser(klass, args, api=None, db=None): if api is None: api = API.from_argparser(args) if db is None: db = Database.from_argparser(args) if args.lang: tags = args.lang.split(",") for tag in tags: if tag not in lang.get_internal_tags(): # FIXME: more elegant solution raise Exception("{} is not a valid language tag".format(tag)) langnames = {lang.langname_for_tag(tag) for tag in tags} else: langnames = set() return klass(api, db, interactive=args.interactive, dry_run=args.dry_run, first=args.first, title=args.title, langnames=langnames, connection_timeout=args.connection_timeout, max_retries=args.connection_max_retries)
def from_argparser(klass, args, api=None, db=None): if api is None: api = API.from_argparser(args) if db is None: db = Database.from_argparser(args) if args.lang: tags = args.lang.split(",") for tag in tags: if tag not in lang.get_internal_tags(): # FIXME: more elegant solution raise Exception("{} is not a valid language tag".format(tag)) langnames = {lang.langname_for_tag(tag) for tag in tags} else: langnames = set() return klass(api, db, first=args.first, title=args.title, langnames=langnames, connection_timeout=args.connection_timeout, max_retries=args.connection_max_retries)
def plot_save(fname): plt.savefig(fname, dpi=192) if __name__ == "__main__": import ws.config argparser = ws.config.getArgParser() API.set_argparser(argparser) Database.set_argparser(argparser) args = ws.config.parse_args(argparser) api = API.from_argparser(args) require_login(api) db = Database.from_argparser(args) users = [ "Alad", "Fengchao", "Indigo", "Kynikos", "Lahwaacz", "Lonaowna", "Nl6720" ] all_logs = list(db.query(list="logevents", letype="rights", ledir="newer")) ax = plot_setup() lines = [] for user in users: revs = list( db.query(list="allrevisions", arvlimit="max", arvprop={"timestamp"},
def from_argparser(klass, args, api=None, db=None): if api is None: api = API.from_argparser(args) if db is None: db = Database.from_argparser(args) return klass(api, db, args)
db.update_parser_cache() namespaces = ["1", "5", "11", "13", "15"] talks = OrderedSet() for ns in namespaces: for page in db.query(generator="allpages", gapnamespace=ns, prop="sections", secprop={"title"}): for section in page.get("sections", []): if section["title"].startswith("<s>") and section["title"].endswith("</s>"): talks.add(page["title"]) for talk in talks: print("* [[{}]]".format(talk)) if __name__ == "__main__": import ws.config import ws.logging argparser = ws.config.getArgParser(description="Find closed discussions") API.set_argparser(argparser) Database.set_argparser(argparser) args = argparser.parse_args() # set up logging ws.logging.init(args) api = API.from_argparser(args) db = Database.from_argparser(args) main(api, db)
def from_argparser(klass, args, api=None, db=None): if api is None: api = API.from_argparser(args) if db is None: db = Database.from_argparser(args) return klass(api, db, args.page_name, args.days, args.min_edits)