{"id":13456872,"url":"https://github.com/ripmeapp2/ripme","last_synced_at":"2025-03-24T11:31:37.727Z","repository":{"id":40452266,"uuid":"330195520","full_name":"ripmeapp2/ripme","owner":"ripmeapp2","description":"Downloads albums in bulk","archived":false,"fork":true,"pushed_at":"2025-01-16T22:56:00.000Z","size":5006,"stargazers_count":317,"open_issues_count":29,"forks_count":36,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-03-22T22:39:16.876Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"RipMeApp/ripme","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ripmeapp2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2021-01-16T15:40:03.000Z","updated_at":"2025-02-23T23:12:46.000Z","dependencies_parsed_at":"2023-01-30T22:15:23.237Z","dependency_job_id":null,"html_url":"https://github.com/ripmeapp2/ripme","commit_stats":null,"previous_names":[],"tags_count":131,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripmeapp2%2Fripme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripmeapp2%2Fripme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripmeapp2%2Fripme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripmeapp2%2Fripme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ripmeapp2","download_url":"https://codeload.github.com/ripmeapp2/ripme/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245260924,"owners_count":20586498,"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","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":[],"created_at":"2024-07-31T08:01:29.320Z","updated_at":"2025-03-24T11:31:37.720Z","avatar_url":"https://github.com/ripmeapp2.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# RipMe\n\n[![Licensed under the MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](/LICENSE.txt)\n[![Join the chat at https://gitter.im/RipMeApp/Lobby](https://badges.gitter.im/RipMeApp/Lobby.svg)](https://gitter.im/RipMeApp/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Subreddit](https://img.shields.io/badge/discuss-on%20reddit-blue.svg)](https://www.reddit.com/r/ripme/)\n![alt Badge Status](https://github.com/ripmeapp2/ripme/actions/workflows/gradle.yml/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/RipMeApp/ripme/badge.svg?branch=main)](https://coveralls.io/github/RipMeApp/ripme?branch=main)\n\n## Recent development updates\n\n- For a while, the ripmeapp/ripme repo was inactive, but development continued at ripmeapp2/ripme.\n- Now, maintainers have been updated and development has been rejoined with ripmeapp/ripme where it will continue.\n- You may find a number of stale issues on ripmeapp/ripme and/or on ripmeapp2/ripme until everything is merged back together and statuses are updated.\n- The current active development repo for RipMe is located at [ripmeapp/ripme](https://github.com/ripmeapp/ripme/).\n\n## Maintainers\n\nRipMe has been maintained with ♥️ and in our limited free time by the following\npeople, roughly in order from most recent primary developer, with current\nactivity marked by color of the indicator:\n\n- **[@soloturn](https://github.com/soloturn)** 🟢,\n- **[@cyian-1756](https://github.com/cyian-1756)** 🟥,\n- **[@kevin51jiang](https://github.com/kevin51jiang)** 🟥,\n- **[@MetaPrime](https://github.com/metaprime)** 🟡,\n- and its original creator, **[@4pr0n](https://github.com/4pr0n)** 🟥.\n\nIf you'd like to become a maintainer, ask an active maintainer to be added to the team.\n\n## Contact\n\nChat with the team and community on [gitter](https://gitter.im/RipMeApp/Lobby) and [reddit.com/r/ripme](https://www.reddit.com/r/ripme/)\n\n# About\n\nRipMe is an album ripper for various websites. It is a cross-platform tool that runs on your computer, and\nrequires Java 21 or later to run. RipMe has been tested and is confirmed working on Windows, Linux, and MacOS.\n\n![Screenshot](https://i.imgur.com/UCQNjeg.png)\n\n## Downloads\n\nDownload `ripme.jar` from the [latest release](https://github.com/ripmeapp2/ripme/releases). For information about running the `.jar` file, see\n[the How To Run wiki](https://github.com/ripmeapp/ripme/wiki/How-To-Run-RipMe).\n\nThe version number like `ripme-1.7.94-17-2167aa34-feature_auto_release.jar` contains a release number (`1.7.94`), given by\na person, the number of commits since this version (`17`). The commit SHA (`2167aa34`) uniquely references the\nsource code ripme was built from. If it is not built from the main branch, the branch name (`feature/auto-release`) is\ngiven.\n\n## Installation\n\nOn macOS, there is a [cask](https://github.com/Homebrew/homebrew-cask/blob/master/Casks/ripme.rb).\n\n```\nbrew install --cask ripme \u0026\u0026 xattr -d com.apple.quarantine /Applications/ripme.jar\n```\n\n## Changelog\n\n[Changelog](/ripme.json) **(ripme.json)**\n\n# Features\n\n- Quickly downloads all images in an online album. [See supported sites](https://github.com/ripmeapp/ripme/wiki/Supported-Sites)\n- Easily re-rip albums to fetch new content\n- Built in updater\n- Skips already downloaded images by default\n- Can auto skip e-hentai and nhentai albums containing certain tags. [See here for how to enable](https://github.com/RipMeApp/ripme/wiki/Config-options#nhentaiblacklisttags)\n- Download a range of urls. [See here for how](https://github.com/RipMeApp/ripme/wiki/How-To-Run-RipMe#downloading-a-url-range)\n\n## List of Supported Sites\n\n- imgur\n- twitter\n- tumblr\n- instagram\n- flickr\n- photobucket\n- reddit\n- gonewild\n- motherless\n- imagefap\n- imagearn\n- seenive\n- vinebox\n- 8muses\n- deviantart\n- xhamster\n- [(more)](https://github.com/ripmeapp/ripme/wiki/Supported-Sites)\n\n## Not Supported?\n\nRequest support for more sites by adding a comment to [this Github issue](https://github.com/RipMeApp/ripme/issues/38).\n\nIf you're a developer, you can add your own Ripper by following the wiki guide:\n[How To Create A Ripper for HTML Websites](https://github.com/ripmeapp/ripme/wiki/How-To-Create-A-Ripper-for-HTML-websites).\n\n# Compiling \u0026 Building\n\nThe project uses [Gradle](https://gradle.org). To build the .jar file,\nnavigate to the root project directory and run at least the test you\nchange, e.g. Xhamster. test execution can also excluded completely:\n\n```bash\n./gradlew clean build testAll --tests XhamsterRipperTest.testXhamster2Album\n./gradlew clean build -x test --warning-mode all\n```\n\nThe generated JAR (java archive) in build/libs will include all\ndependencies.\n\n# Running Tests\n\nTests can be tagged as beeing slow, or flaky. The gradle build reacts to\nthe following combinations of tags:\n\n- default is to run all tests without tag.\n- testAll runs all tests.\n- testFlaky runs tests with tag \"flaky\".\n- testSlow runs tests with tag \"slow\".\n- tests can be run by test class, or single test. Use \"testAll\" so it does\n  not matter if a test is tagged or not.\n- tests can give the full stack of an assertion, exception, or error if you pass `--info` to the command\n\n```bash\n./gradlew test\n./gradlew testAll\n./gradlew testFlaky\n./gradlew testSlow\n./gradlew testAll --tests XhamsterRipperTest\n./gradlew testAll --tests XhamsterRipperTest.testXhamster2Album\n./gradlew testAll --tests ChanRipperTest --info\n```\n\nPlease note that some tests may fail as sites change and our rippers\nbecome out of date. Start by building and testing a released version\nof RipMe and then ensure that any changes you make do not cause more\ntests to break.\n\n# releasing\nedit draft release `develop build main` the following way:\n1. create a new tag with version from ripme filename, e.g. 2.1.12-7-d0b97acd\n1. set the title to same name\n1. set previous tag to release tag before, e.g.  2.1.11-20-ca96ce88\n1. press `generate release notes` button\n1. edit release text as appropriate\n1. save\n\nthen, prepare the repo for update check, and next release:\n1. edit ripme.json, enter new hash, version and short description, and commit\n1. set the base tag for next release verison calculation, e.g. 2.1.13 on this commit\n1. push tag and commit\n1. remove old base tag, not needed any more, e.g. 2.1.12\n\n# New GUI - compose-jb\nAs Java Swing will go away in future, a new GUI technology should be used. One of the\ncandidates is [Jetpack Compose for Desktop](https://github.com/JetBrains/compose-jb/).\n\nThe library leverages the compose library for android and provides it for android,\ndesktop and web. The navigation library is not available for desktop, so Arkadii Ivanov\nimplemented\n[decompose](https://proandroiddev.com/a-comprehensive-hundred-line-navigation-for-jetpack-desktop-compose-5b723c4f256e).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fripmeapp2%2Fripme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fripmeapp2%2Fripme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fripmeapp2%2Fripme/lists"}