Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
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"},
Пример #4
0
 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)
Пример #6
0
 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)