From 2e96d6146bd6152d1be4c4d444aa690a130a3da1 Mon Sep 17 00:00:00 2001 From: Ivan Habunek Date: Tue, 21 Jan 2025 12:14:05 +0100 Subject: [PATCH] Remove tags timeline command, moved to timelines tag --- toot/cli/tags.py | 112 ++--------------------------------------------- 1 file changed, 3 insertions(+), 109 deletions(-) diff --git a/toot/cli/tags.py b/toot/cli/tags.py index a3784c7d..1e264c55 100644 --- a/toot/cli/tags.py +++ b/toot/cli/tags.py @@ -1,15 +1,11 @@ import json as pyjson -from typing import Optional -from urllib.parse import quote import click -from toot import api, http +from toot import api from toot.cli import Context, cli, json_option, pass_context -from toot.cli.validators import validate_positive -from toot.entities import Status, Tag, from_dict, from_response_list, from_responses_batched -from toot.output import get_continue, green, print_tag_list, print_timeline, yellow -from toot.utils import drop_empty_values, str_bool_nullable +from toot.entities import Tag, from_dict +from toot.output import print_tag_list @cli.group() @@ -133,105 +129,3 @@ def unfeature(ctx: Context, tag: str, json: bool): click.echo(response.text) else: click.secho(f"✓ Tag #{featured_tag['name']} is no longer featured", fg="green") - - -@tags.command() -@click.argument("tag_name") -@click.option( - "-l", - "--local", - is_flag=True, - help="Return only local statuses", -) -@click.option( - "-r", - "--remote", - is_flag=True, - help="Return only remote statuses", -) -@click.option( - "-m", - "--media", - is_flag=True, - help="Return only statuses with media attachments", -) -@click.option( - "-n", - "--limit", - type=int, - default=20, - help="Number of results to fetch per request [max: 40]", -) -@click.option( - "-p", - "--pager", - help="Page the results, optionally define how many results to show per page", - type=int, - callback=validate_positive, - is_flag=False, - flag_value=10, -) -@click.option( - "-c", - "--clear", - help="Clear the screen before printing", - is_flag=True, -) -@json_option -@pass_context -def timeline( - ctx: Context, - tag_name: str, - local: bool, - remote: bool, - media: bool, - limit: int, - pager: Optional[int], - clear: bool, - json: bool, -): - """View hashtag timeline""" - # TODO: Add `any`, `all`, and `none` params - # TODO: Add `max_id`, `since_id`, and `min_id` params - path = f"/api/v1/timelines/tag/{quote(tag_name)}" - - params = drop_empty_values( - { - "local": str_bool_nullable(local), - "remote": str_bool_nullable(remote), - "media": str_bool_nullable(media), - "limit": limit, - } - ) - - if json: - response = http.get(ctx.app, ctx.user, path, params) - click.echo(response.text) - return - - if pager: - first = True - printed_any = False - - responses = http.get_paged(ctx.app, ctx.user, path, params) - for page in from_responses_batched(responses, Status, pager): - if not first and not get_continue(): - break - if clear: - click.clear() - print_timeline(page) - first = False - printed_any = True - - if not printed_any: - click.echo("No statuses found containing the given tag") - return - - response = http.get(ctx.app, ctx.user, path, params) - statuses = from_response_list(Status, response) - if statuses: - print_timeline(statuses) - if len(statuses) == limit: - click.secho("There may be more results. Increase the --limit or use --pager to see the rest.", dim=True) - else: - click.echo("No statuses found containing the given tag")