コード例 #1
0
ファイル: commands.py プロジェクト: mugcake/toot
def curses(app, user, args):
    from toot.ui.app import TimelineApp

    # Make sure tag, list and public are not used simultaneously
    if len([arg for arg in [args.tag, args.public] if arg]) > 1:
        raise ConsoleError(
            "Only one of --public or --tag can be used at one time.")

    if args.local and not (args.public or args.tag):
        raise ConsoleError(
            "The --local option is only valid alongside --public or --tag.")

    if not args.public and (not app or not user):
        raise ConsoleError("You must be logged in to view the home timeline.")

    if args.public:
        instance = args.instance or app.instance
        generator = api.public_timeline_generator(instance, local=args.local)
    elif args.tag:
        generator = api.tag_timeline_generator(app,
                                               user,
                                               args.tag,
                                               local=args.local)
    else:
        generator = api.home_timeline_generator(app, user)

    TimelineApp(generator).run()
コード例 #2
0
def get_timeline_generator(app, user, args):
    # Make sure tag, list and public are not used simultaneously
    if len([arg for arg in [args.tag, args.list, args.public] if arg]) > 1:
        raise ConsoleError(
            "Only one of --public, --tag, or --list can be used at one time.")

    if args.local and not (args.public or args.tag):
        raise ConsoleError(
            "The --local option is only valid alongside --public or --tag.")

    if args.instance and not (args.public or args.tag):
        raise ConsoleError(
            "The --instance option is only valid alongside --public or --tag.")

    if args.public:
        instance = args.instance or app.instance
        return api.public_timeline_generator(instance,
                                             local=args.local,
                                             limit=args.count)
    elif args.tag:
        instance = args.instance or app.instance
        return api.tag_timeline_generator(instance,
                                          args.tag,
                                          local=args.local,
                                          limit=args.count)
    elif args.list:
        return api.timeline_list_generator(app,
                                           user,
                                           args.list,
                                           limit=args.count)
    else:
        return api.home_timeline_generator(app, user, limit=args.count)
コード例 #3
0
ファイル: app.py プロジェクト: Kaned1as/toot
 def goto_public_timeline(self, local):
     self.timeline_generator = api.public_timeline_generator(self.app,
                                                             self.user,
                                                             local=local,
                                                             limit=40)
     promise = self.async_load_timeline(is_initial=True,
                                        timeline_name="public")
     promise.add_done_callback(lambda *args: self.close_overlay())
コード例 #4
0
def curses(app, user, args):
    from toot.ui.app import TimelineApp

    if not args.public and (not app or not user):
        raise ConsoleError("You must be logged in to view the home timeline.")

    if args.public:
        instance = args.instance or app.instance
        generator = api.public_timeline_generator(instance)
    else:
        generator = api.home_timeline_generator(app, user)

    TimelineApp(generator).run()
コード例 #5
0
def timeline(app, user, args):
    # Make sure tag, list and public are not used simultaneously
    if len([arg for arg in [args.tag, args.list, args.public] if arg]) > 1:
        raise ConsoleError(
            "Only one of --public, --tag, or --list can be used at one time.")

    if args.local and not (args.public or args.tag):
        raise ConsoleError(
            "The --local option is only valid alongside --public or --tag.")

    if args.public:
        gen = api.public_timeline_generator(app.instance,
                                            local=args.local,
                                            limit=args.count)
    elif args.tag:
        gen = api.tag_timeline_generator(app,
                                         user,
                                         args.tag,
                                         local=args.local,
                                         limit=args.count)
    elif args.list:
        gen = api.timeline_list_genertor(app, user, args.list)
    else:
        gen = api.home_timeline_generator(app, user, limit=args.count)

    while (True):
        items = next(gen)

        if args.reverse:
            items = reversed(items)

        print_timeline(items)

        if args.once:
            break

        char = input("\nContinue? [Y/n] ")
        if char.lower() == "n":
            break