1
0
mirror of https://github.com/RipMeApp/ripme.git synced 2025-03-17 10:19:39 +01:00
ripme/README.md

188 lines
7.7 KiB
Markdown
Raw Normal View History

# RipMe
2021-03-07 02:46:24 +01:00
[![Licensed under the MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](/LICENSE.txt)
[![Join the chat at https://gitter.im/RipMeApp/Lobby](https://badges.gitter.im/RipMeApp/Lobby.svg)](https://gitter.im/RipMeApp/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Subreddit](https://img.shields.io/badge/discuss-on%20reddit-blue.svg)](https://www.reddit.com/r/ripme/)
2021-03-18 09:20:51 +01:00
![alt Badge Status](https://github.com/ripmeapp2/ripme/actions/workflows/gradle.yml/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/RipMeApp/ripme/badge.svg?branch=main)](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
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:
- **[@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/)
# 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
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
![Screenshot](https://i.imgur.com/UCQNjeg.png)
2014-06-25 01:39:47 -07:00
## Downloads
Download `ripme.jar` from the [latest release](https://github.com/ripmeapp2/ripme/releases). For information about running the `.jar` file, see
[the How To Run wiki](https://github.com/ripmeapp/ripme/wiki/How-To-Run-RipMe).
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
given.
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).
2020-10-13 05:59:48 +02:00
```
brew install --cask ripme && xattr -d com.apple.quarantine /Applications/ripme.jar
2020-10-13 05:59:48 +02:00
```
## Changelog
2021-03-07 02:46:24 +01:00
[Changelog](/ripme.json) **(ripme.json)**
2014-04-06 23:08:55 -07:00
# Features
2014-03-02 01:30:10 -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
## List of Supported Sites
- 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
## Not Supported?
2014-06-27 00:19:03 -07: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
If you're a developer, you can add your own Ripper by following the wiki guide:
[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
# Compiling & Building
The project uses [Gradle](https://gradle.org). To build the .jar file,
navigate to the root project directory and run at least the test you
change, e.g. Xhamster. test execution can also excluded completely:
2014-03-14 08:18:21 -07:00
```bash
./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
The generated JAR (java archive) in build/libs will include all
dependencies.
2014-05-25 23:48:13 -07:00
# Running Tests
2016-12-20 01:26:05 -08: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
- 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.
- 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
./gradlew testAll
./gradlew testFlaky
./gradlew testSlow
./gradlew testAll --tests XhamsterRipperTest
./gradlew testAll --tests XhamsterRipperTest.testXhamster2Album
./gradlew testAll --tests ChanRipperTest --info
2021-02-14 12:23:15 +01: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.
# 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
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
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
# 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/).
The library leverages the compose library for android and provides it for android,
desktop and web. The navigation library is not available for desktop, so Arkadii Ivanov
implemented
[decompose](https://proandroiddev.com/a-comprehensive-hundred-line-navigation-for-jetpack-desktop-compose-5b723c4f256e).