stepanzubkov / florgon-cc-cli

CLI for modern url shortener && paste manager
MIT License
1 stars 0 forks source link

ready to tackle pastes in florgon-cc-api #11

Closed pokedim13 closed 1 year ago

pokedim13 commented 1 year ago

give me only the technical task in Russian, to me in VK @h3try, you can answer here

stepanzubkov commented 1 year ago

What command do you want to impement? See #6 issue for all pastes commands

pokedim13 commented 1 year ago

commands

Paste info Paste delete maybe others, but I'd better study the code for now, and prepare

stepanzubkov commented 1 year ago

Команда paste info, как указано в #6 , использует метод GET /pastes/<hash/. Команда должна принимать 0 аргументов и некоторые опции: -s, --short-url - Опционально можно передать короткую ссылку в этой опции. Если ссылка не передана, ссылка выбирается пользователем интерактивно с помощью метода request_hash_from_pastes_list (Смотрите использование в комманде url info) -o, --only-text - Это флаг. По умолчанию принимает значение False. Если он True, то из всей информации о пасте печатается только её текст.

А теперь о самой логике: Сначала надо получить хэш из ссылки, если она передана (смотрите функцию services.url.extract_hash_from_short_url). Вы должны имплементировать такую же функцию, только для паст, в модуле services.paste. Если ссылка не передана, то используется функция services.paste.request_hash_from_pastes_list, которую вы тоже должны написать (смотрите аналогичную функцию services.url.request_hash_from_urls_list).

После получения хэша, комманда вызывает функцию services.paste.get_paste_info_from_paste_hash, которая в свою очередь использует функцию services.api.execute_json_api_method. В команде обрабатывается ошибка (смотрите обработку ошибок в командах url и pastes). После этого в консоль печатается информация о пасте (Текст, когда истекает время действия, публичная ли статистика, сгорит ли эта паста после первого прочтения).

Florgon-cc-cli использует фреймворк click, так что вы можете пользоваться документацией по нему. Функционал паст похож на функционал коротких ссылок, поэтому при разработке операйтесь на уже созданные команды для коротких ссылок. Для уточнения информации пишите сюда, а как задача с paste info будет готова, отправьте Pull Request. После выполнения этой задачи я дам вам ТЗ по paste delete. Удачной работы! 😄