{"id":31904838,"url":"https://github.com/pokatomnik/kriper","last_synced_at":"2026-05-18T04:06:25.850Z","repository":{"id":65323045,"uuid":"572579302","full_name":"pokatomnik/kriper","owner":"pokatomnik","description":"Kriper.net mobile app","archived":false,"fork":false,"pushed_at":"2024-11-20T08:10:08.000Z","size":23137,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"dungeon-master","last_synced_at":"2024-11-20T10:12:33.607Z","etag":null,"topics":["android","deno","jetpack-compose","kriper","web-scraping"],"latest_commit_sha":null,"homepage":"https://github.com/pokatomnik/kriper","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pokatomnik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-30T15:20:53.000Z","updated_at":"2024-11-20T08:10:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"e9596b01-1616-4d69-aba0-51d4aed78982","html_url":"https://github.com/pokatomnik/kriper","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/pokatomnik/kriper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fkriper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fkriper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fkriper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fkriper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pokatomnik","download_url":"https://codeload.github.com/pokatomnik/kriper/tar.gz/refs/heads/dungeon-master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fkriper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015368,"owners_count":26085687,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","deno","jetpack-compose","kriper","web-scraping"],"created_at":"2025-10-13T13:59:29.826Z","updated_at":"2025-10-13T14:00:00.335Z","avatar_url":"https://github.com/pokatomnik.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kriper\nОй, а что это тут у нас?\nКонечно же приложение для чтения историй с веб сайта https://kriper.net (далее - просто Вебсайт).\n# Содержание\n- [Обзор возможностей](#Обзор-возможностей)\n    - [Что оно умеет](#Что-оно-умеет)\n    - [Оффлайн](#Оффлайн)\n    - [Группы меток](#Группы-меток)\n    - [Метки](#Метки)\n    - [Поиск](#Поиск)\n    - [Избранное](#Избранное)\n    - [Темы](#Темы)\n    - [Галерея](#Галерея)\n    - [Видео](#Видео)\n    - [Подборки](#Подборки)\n    - [Хронология](#Хронология)\n- [Как это работает](#Как-это-работает)\n- [Сбор данных](#Сбор-данных)\n- [Благодарности](#Благодарности)\n- [Cкриншоты](#Скриншоты)\n\n## Обзор возможностей\n### Что оно умеет\nПозволяет читать истории, которые были опубликованы на сайте офлайн. Есть навигация по историям:\n- По группам меток\n- По меткам\n- С помощью поиска\n- По автору\n- По собственному избранному списку\n\n### Оффлайн\nВсе истории доступны для чтения без подключения к Интернету, однако если в истории есть картинки или вставлено видео, то его получится посмотреть только если интернет доступен. Это чисто техническое ограничение, так как такой объем информации включить в apk файл можно, но он будет слишком большим. Сейчас абсолютно все тексты абсолютно всех историй сайта (которые доступны публично!) доступны в этом приложении\n\n### Группы меток\nВебсайт группирует все истории сначала по группам меток, и затем по меткам. Приложение продолжает эту традицию и делает также. Группы меток можно открыть находясь на Главном Экране.\n\n### Метки\nМетки группируют истории по какому-либо признаку. Они также доступны на Главном Экране. Можно либо отобразить все сразу списком или же сначала выбрать [группу меток](#Группы-меток), и затем открыть метки конкретной группы.\n\n### Поиск\nПриложение позволяет искать истории по\n- Названию истории\n- Автору\n- Никнейму пользователя, добавившего историю\n\n### Избранное\nИстории можно добавлять в избранное, чтобы открывать их позднее. Это свой личный оффлайновый список, никак не связанный с Вебсайтом. Чтобы добавить историю в избранное, надо ее открыть и тапнуть по истории 2 раза. Открыть список Избранного можно на Главном Экране приложения. Удалить из избранного можно в Списке Избранного, свайпнув карточку истории влево или тапнув на текст истории повторно.\n\n### Темы\nПриложение поддерживает светлую и темную тему. Тема может выбираться автоматически в зависимости от темы устройства или же можно вручную переопределять ее в настройках. Кроме того, для чтения истории доступен выбор цвета фона и шрифта.\n\n### Галерея\nВ _некоторых_ историях есть картинки. Картинки показываются как внутри истории, так и в виде Галереи (кнопочка под текстом истории)\n\n### Видео\nВ _некоторых_ историях есть видео с [ютуба](https://youtube.com). Такие видео тоже можно посмотреть с помощью специальной кнопки под текстом истории.\n\n### Подборки\nВ приложении есть подборки (никак не связанные с Вебсайтом!). С помощью них легко выбрать себе хорошую историю: выбирайте:\n- Все подряд\n- Хорошие короткие истории\n- Хорошие длинные истории\n- Новые истории\n\n### Хронология\nКаждая история, которую вы открываете сохраняется в Истории. Раздел истории доступен всегда: в нем упорядочены все названия открытых историй по дате последнего открытия.\n\n## Как это работает\nУ приложения есть две части:\n- Веб скраппер, который выкачивает полностью весь Вебсайт, индексируя его, и преобразуя все веб страницы в формат [Markdown](https://www.markdownguide.org/basic-syntax/).\n- Приложение, которое берет сгенерированный контент и кладет его в apk файл при сборке, благодаря чему все истории становятся доступны оффлайн.\n\nВебкраппер написан на [Typescript](https://www.typescriptlang.org/) с использованием рантайма [Deno](https://deno.land), для парсинга используется библиотека [Deno DOM WASM](https://deno.land/x/deno_dom@v0.1.35-alpha/deno-dom-wasm.ts).\nМобильное приложение написано на Kotlin с использованием фреймворка [Jetpack Compose](https://developer.android.com/jetpack/compose), Accompanist, Room, и [многих других](https://github.com/pokatomnik/kriper/blob/dungeon-master/Kriper/app/build.gradle).\n\n## Сбор данных\nПриложение никаким образом не собирает пользовательские данные, не передает их третьим лицам, не собирает деперсонализированной информации об устройстве, пользователе и его местоположении.\n\u003e Важно: при работе приложения и просмотре историй, в которых имеются изображения и/или встроеннные видео, некоторые пользовательские данные могут быть переданы на Вебсайт и/или соответствующую платформу видеохостинга. Передача данных в этом случае регламентируется правилами пользования сайтов [https://kriper.net](https://kriper.net) и/или [https://youtube.com](https://youtube.com)\n\n## Благодарности\nОтдельную благодарность хотелось бы выразить rainbow666 [rainbow666@kriper.net](rainbow666@kriper.net) и его команде, а также авторам историй Вебсайта, без них приложение не случилось бы.\n\n## Скриншоты\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/history.jpg\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/main_screen1.jpg\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/main_screen2.jpg\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/search.jpg\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/settings.jpg\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/story.jpg\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/story_settings.jpg\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/tag_groups.jpg\" width=\"300\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/pokatomnik/kriper/dungeon-master/readme_images/tags.jpg\" width=\"300\"\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpokatomnik%2Fkriper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpokatomnik%2Fkriper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpokatomnik%2Fkriper/lists"}