2025-01-01 23:34:40 -08:00
# RipMe
2021-03-07 02:46:24 +01:00
[](/LICENSE.txt)
[](https://gitter.im/RipMeApp/Lobby?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
[](https://www.reddit.com/r/ripme/)
2021-03-18 09:20:51 +01:00

2025-01-01 23:34:40 -08:00
[](https://coveralls.io/github/RipMeApp/ripme?branch=main)
## Recent development updates
- For a while, the ripmeapp/ripme repo was inactive, but development continued at ripmeapp2/ripme.
- Now, maintainers have been updated and development has been rejoined with ripmeapp/ripme where it will continue.
- 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.
- The current active development repo for RipMe is located at [ripmeapp/ripme ](https://github.com/ripmeapp/ripme/ ).
## Maintainers
2014-03-02 01:30:10 -08:00
2025-01-01 23:34:40 -08:00
RipMe has been maintained with ♥️ and in our limited free time by the following
people, roughly in order from most recent primary developer, with current
activity marked by color of the indicator:
2017-11-19 12:47:41 -08:00
2025-01-01 23:34:40 -08:00
- **[@soloturn ](https://github.com/soloturn )** 🟢,
- **[@cyian-1756 ](https://github.com/cyian-1756 )** 🟥,
- **[@kevin51jiang ](https://github.com/kevin51jiang )** 🟥,
- **[@MetaPrime ](https://github.com/metaprime )** 🟡,
- and its original creator, ** [@4pr0n ](https://github.com/4pr0n )** 🟥.
If you'd like to become a maintainer, ask an active maintainer to be added to the team.
## Contact
Chat with the team and community on [gitter ](https://gitter.im/RipMeApp/Lobby ) and [reddit.com/r/ripme ](https://www.reddit.com/r/ripme/ )
2017-11-19 12:47:41 -08:00
# About
2023-09-27 23:32:20 +02:00
RipMe is an album ripper for various websites. It is a cross-platform tool that runs on your computer, and
2025-01-01 23:34:40 -08:00
requires Java 21 or later to run. RipMe has been tested and is confirmed working on Windows, Linux, and MacOS.
2014-03-02 01:30:10 -08:00
2018-10-17 12:00:44 +02:00

2014-06-25 01:39:47 -07:00
2019-10-30 11:25:38 -05:00
## Downloads
2016-12-20 04:06:26 -08:00
2025-01-01 23:34:40 -08:00
Download `ripme.jar` from the [latest release ](https://github.com/ripmeapp2/ripme/releases ). For information about running the `.jar` file, see
2021-02-28 17:08:24 +01:00
[the How To Run wiki ](https://github.com/ripmeapp/ripme/wiki/How-To-Run-RipMe ).
2016-12-20 04:06:26 -08:00
2025-01-01 23:34:40 -08:00
The version number like `ripme-1.7.94-17-2167aa34-feature_auto_release.jar` contains a release number (`1.7.94` ), given by
a person, the number of commits since this version (`17` ). The commit SHA (`2167aa34` ) uniquely references the
source code ripme was built from. If it is not built from the main branch, the branch name (`feature/auto-release` ) is
2021-02-28 17:08:24 +01:00
given.
2016-12-20 04:06:26 -08:00
2025-01-04 19:29:42 -08:00
Note that this follows the Semantic Versioning spec (see https://semver.org/),
and uses the feature of the format that adds extra data after the `-` to
provide helpful context so that every commit on every branch has a dintinct
semver version associated with it.
2020-10-13 05:59:48 +02:00
## Installation
On macOS, there is a [cask ](https://github.com/Homebrew/homebrew-cask/blob/master/Casks/ripme.rb ).
2025-01-01 23:34:40 -08:00
2020-10-13 05:59:48 +02:00
```
2021-01-27 15:18:51 -06:00
brew install --cask ripme & & xattr -d com.apple.quarantine /Applications/ripme.jar
2020-10-13 05:59:48 +02:00
```
2019-10-30 11:25:38 -05:00
## Changelog
2021-03-07 02:46:24 +01:00
[Changelog ](/ripme.json ) ** (ripme.json)**
2014-04-06 23:08:55 -07:00
2016-12-20 04:06:26 -08:00
# Features
2014-03-02 01:30:10 -08:00
2025-01-01 23:34:40 -08:00
- Quickly downloads all images in an online album. [See supported sites ](https://github.com/ripmeapp/ripme/wiki/Supported-Sites )
- Easily re-rip albums to fetch new content
- Built in updater
- Skips already downloaded images by default
- 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 )
- Download a range of urls. [See here for how ](https://github.com/RipMeApp/ripme/wiki/How-To-Run-RipMe#downloading-a-url-range )
2014-03-02 01:30:10 -08:00
2019-10-30 11:25:38 -05:00
## List of Supported Sites
2016-12-20 04:06:26 -08:00
2025-01-01 23:34:40 -08:00
- imgur
- twitter
- tumblr
- instagram
- flickr
- photobucket
- reddit
- gonewild
- motherless
- imagefap
- imagearn
- seenive
- vinebox
- 8muses
- deviantart
- xhamster
- [(more) ](https://github.com/ripmeapp/ripme/wiki/Supported-Sites )
2014-03-14 08:18:21 -07:00
2016-12-20 04:06:26 -08:00
## Not Supported?
2014-06-27 00:19:03 -07:00
2025-01-06 04:32:22 -08:00
Request support for more sites by adding a comment to [this Github issue ](https://github.com/RipMeApp/ripme/issues/2068 ).
2014-04-05 09:01:45 -07:00
2019-10-30 11:25:38 -05:00
If you're a developer, you can add your own Ripper by following the wiki guide:
2017-06-24 15:05:55 -07:00
[How To Create A Ripper for HTML Websites ](https://github.com/ripmeapp/ripme/wiki/How-To-Create-A-Ripper-for-HTML-websites ).
2014-04-05 09:01:45 -07:00
2016-12-20 04:06:26 -08:00
# Compiling & Building
2021-03-28 10:36:30 +02:00
The project uses [Gradle ](https://gradle.org ). To build the .jar file,
2025-01-01 23:34:40 -08:00
navigate to the root project directory and run at least the test you
2021-03-28 10:36:30 +02:00
change, e.g. Xhamster. test execution can also excluded completely:
2014-03-14 08:18:21 -07:00
```bash
2021-03-28 10:36:30 +02:00
./gradlew clean build testAll --tests XhamsterRipperTest.testXhamster2Album
2021-02-14 12:23:15 +01:00
./gradlew clean build -x test --warning-mode all
2014-03-14 08:18:21 -07:00
```
2014-04-05 09:01:45 -07:00
2021-03-28 10:36:30 +02:00
The generated JAR (java archive) in build/libs will include all
dependencies.
2014-05-25 23:48:13 -07:00
2016-12-20 04:06:26 -08:00
# Running Tests
2016-12-20 01:26:05 -08:00
2021-03-28 10:36:30 +02:00
Tests can be tagged as beeing slow, or flaky. The gradle build reacts to
the following combinations of tags:
2016-12-20 01:26:05 -08:00
2021-03-28 10:36:30 +02:00
- default is to run all tests without tag.
- testAll runs all tests.
- testFlaky runs tests with tag "flaky".
- testSlow runs tests with tag "slow".
- tests can be run by test class, or single test. Use "testAll" so it does
not matter if a test is tagged or not.
2025-01-02 01:28:57 -08:00
- tests can give the full stack of an assertion, exception, or error if you pass `--info` to the command
2016-12-20 01:26:05 -08:00
2021-02-14 12:23:15 +01:00
```bash
./gradlew test
2021-03-28 10:36:30 +02:00
./gradlew testAll
./gradlew testFlaky
./gradlew testSlow
./gradlew testAll --tests XhamsterRipperTest
./gradlew testAll --tests XhamsterRipperTest.testXhamster2Album
2025-01-02 01:28:57 -08:00
./gradlew testAll --tests ChanRipperTest --info
2021-02-14 12:23:15 +01:00
```
2021-03-28 10:36:30 +02:00
Please note that some tests may fail as sites change and our rippers
become out of date. Start by building and testing a released version
of RipMe and then ensure that any changes you make do not cause more
tests to break.
2021-05-14 21:08:20 +02:00
2025-01-06 05:51:11 -08:00
# Publishing a New Release
## Create the Release
2025-01-02 12:01:14 +01:00
edit draft release `develop build main` the following way:
1. create a new tag with version from ripme filename, e.g. 2.1.12-7-d0b97acd
1. set the title to same name
1. set previous tag to release tag before, e.g. 2.1.11-20-ca96ce88
1. press `generate release notes` button
1. edit release text as appropriate
1. save
2025-01-06 05:51:11 -08:00
Another version of instructions that worked for @metaprime:
- Push latest-main to the version you will want to publish, and wait a few minutes for automation to finish running the build
- Go to https://github.com/RipMeApp/ripme/releases
- Find development build main
- Click the "Edit" button
- Note the version in the filename for the .jar
- Push a tag with that version number
- Update the tag on the release to that version numbered tag that matches the .jar's name
- Change the title on the release to match
- Uncheck "set as a pre-release"
- Check "set as the latest release"
- Click "publish release"
## Publish the JSON update so the update check will pick up the new release
2025-01-02 12:01:14 +01:00
then, prepare the repo for update check, and next release:
1. edit ripme.json, enter new hash, version and short description, and commit
2025-01-06 05:51:11 -08:00
1. Get the hash by downloading the file and computing a sha256 hash
2025-01-02 12:01:14 +01:00
1. set the base tag for next release verison calculation, e.g. 2.1.13 on this commit
1. push tag and commit
1. remove old base tag, not needed any more, e.g. 2.1.12
2021-05-14 21:08:20 +02:00
# New GUI - compose-jb
As Java Swing will go away in future, a new GUI technology should be used. One of the
candidates is [Jetpack Compose for Desktop ](https://github.com/JetBrains/compose-jb/ ).
2025-01-01 23:34:40 -08:00
The library leverages the compose library for android and provides it for android,
2021-05-14 21:08:20 +02:00
desktop and web. The navigation library is not available for desktop, so Arkadii Ivanov
2025-01-01 23:34:40 -08:00
implemented
2021-05-14 21:08:20 +02:00
[decompose ](https://proandroiddev.com/a-comprehensive-hundred-line-navigation-for-jetpack-desktop-compose-5b723c4f256e ).