* - MVP - minimum viable product, минимальный работоспособный продукт
Привет, Пикабу!
Меня зовут Сергей, мне 25 и я программист (хлоп-хлоп).
Летом 2019 года решил побаловаться каким-нибудь полезным пет-проектом. Итак, представляю вам программку Pikabu Profile Posts Viewer!
С ее помощью можно одним махом просмотреть все посты пользователя.
А ТЕПЕРЬ ПО ПОРЯДКУ:
0) Обязательно устанавливаем .NET Framework 4.6.2 — без него программа не запустится.
По умолчанию уже установлен в Windows 10 (v1607 и далее).
Пользователям Windows 7, 8.1, 10 (v1507-v1511) надо скачать его с сайта Майкрософта — https://dotnet.microsoft.com/download/dotnet-framework/thank....
Windows 8 в пролете, простите :(.
1) Запускаем программу.
Сверху — поле для ввода имени интересующего юзера, кнопка поиска постов в профиле, галочка укорачивателя ссылок (см. далее), кнопка сохранения найденного в текстовый файл Блокнота.
Ниже — строка статуса, показывающая сейчас, что программа готова к работе.
В правом углу — кнопка «О программе».
Ну и остальное место — табличка, куда будут выводиться посты.
2) Вводим имя пользователя. Если ввести меньше 5 символов, выдаст ошибку, т.к. таких коротких ников на Пикабу нет.
3) Нажимаем кнопку Найти посты.
Программа отправится на поиски, визуально «зависнув» на некоторое время. Сколько — зависит от кол-ва постов в искомом профиле и скорости вашего интернета. У меня на ADSL 10Мб/с понадобилось 15-75 секунд. На монстрах вроде IProcione не проверял :).
Пока она «виснет», можете заняться чем-нибудь другим.
На галочку пока не обращаем внимания.
3) Программа загрузит посты и отобразит их списком.
Строка статуса показывает, сколько всего постов имеется и на скольких страницах, а также, сколько из них удалось загрузить (это не одно и то же — если вдруг пропадет свет и т.п., отобразится только то, что успели выхватить, да и то не всегда).
Если в поле рейтинга стоит «DELETED», значит, пост был мягко удален (в браузере отображается значок корзины).
4) Нажимаем кнопку сохранения.
Если удалось сохранить, строка статуса сообщит об этом.
В папке, куда вы положили файл программы, появится папка "Pikabu userprofiles", а в ней — текстовые файлы (имена которых соответствуют именам пользователей).
5) Программа сохранит данные в текстовые файлы.
Данные сохраняются таким же списком, только вместо колонок — табуляция. Кроме того, в начале файла еще раз указывается имя пользователя, а в конце — дата последней «выхватки» данных (понятно, что легко правится вручную, но сейчас не об этом).
6) Можете делать теперь с ними что угодно — например, быстро перейти к посту годичной давности, просто скопировав ссылку и вставив в браузер, а не мотая профиль пользователя до Х-й страницы.
НЮАНСЫ:
1) Колонки в таблице можно менять местами, но ТОЛЬКО после закачки данных (иначе — некорректно отобразятся).
При следующей скачке (не закрывая программу) порядок столбцов сохранится.
2) При нажатии на заголовок колонки списка данные отсортируются по возрастанию/убыванию.
Это может занять время почти столько же, а то и больше, чем потрачено на скачку постов. Связано с временной сложностью алгоритма сортировки.
При следующей скачке (не закрывая программу) указание на сортировку по ... сохранится.
Недочет: поскольку все данные в списке компьютер видит как текст, то все колонки сортируются как текст — посимвольно, в т.ч. и № п/п и рейтинг (числа по сути) (см. рис.). Подобное встречается и у других программ, вроде Total Commander, но все же бывает неудобно. Надеюсь поправить со временем.
Частичный обход недочета: поскольку дата у всех постов разная, то сортировка по дате автоматически = сортировке по порядку (№ п/п).
3) Галочка укорачивания ссылок убирает текст — ведь он может быть любым — из ссылок на посты, оставляя только номер истории (см. рис.).
Нажимать ее следует ПЕРЕД скачкой постов.
4) Добавлена простенькая поддержка исключений, например, если отвалился инет, или страница не найдена.
СКАЧАТЬ: http://www.mediafire.com/file/oii09nxdecfkldk (zip-архив, 161 Кб, в распакованном виде — 628 Кб)
ТЕХНИЧЕСКИЕ ПОДРОБНОСТИ ДЛЯ ПРОГРАММИСТОВ:
1) Написано на языке программирования С# с использованием библиотеки HtmlAgilityPack в среде разработки Microsoft Visual Studio Professional 2017.
2) Версия .NET framework – 4.6.2.
3) Исходный код на Github (без папки packages): https://github.com/serhiy1994/PikabuProfilePostsViewer . Можете форкнуть, тем более, что в коде остались некоторые логические дыры в закомменченных строках. Потом смерджу, если хотите.
4) Программа работает медленновато еще и потому, что я не умею в асинхронное программирование :(.
БАГ-РЕПОРТЫ И ЗАМЕЧАНИЯ: оставляйте под соответствующим комментом. Постараюсь пофиксить и обновить релиз.
БЛАГОДАРНОСТИ:
1) Двум десяткам пикабушников, чьи интересные посты заставили меня что-то придумать, чтоб их оперативно посмотреть (полный список выложу позже);
2) персонально @iranaut и @Malica за их существование в качестве пикабушников(-иц);
3) прочий народ — коллеги-программисты, чьи советы мне помогли (указаны в окне About).
Приятного пользования!