# Gallery-Archivist

---
[![Please don't upload to GitHub](https://nogithub.codeberg.page/badge.svg)](https://nogithub.codeberg.page)

My try to make a Social media archiving web tool with django and gallery-dl

## Features / Roadmap

*Note!* This is still in early development so stuff **will** change.

- [ ] Scraping sites primarily with gallery-dl, but also for other links found in posts.
- [ ] Scheduled tasks
- [ ] Site support
  - [ ] [Furaffinity](https://www.furaffinity.net)
  - [ ] [Twitter/X](https://twitter.com/)
    - [x] User import With profile/banner images
    - [ ] Import images from timeline
- [ ] Media support and previews
  - [x] Flash (With [Ruffle](https://github.com/ruffle-rs/ruffle/))
  - [x] PDF (With HTML embed tag)
  - [X] Image (With HTML img tag)
  - [ ] Video (With [FluidPlayer](https://www.fluidplayer.com/))
  - [ ] Compressed archive previews
  - [ ] other text documents
  - [ ] Easy download list of all files of post and user

---

## Trademarks

### External Sites

The logos of external sites used in Gallery-Archivist are trademarks of their respective owners. The use of these trademarks does not indicate endorsement of the trademark holder by the repository, its owners or contributors.  
Gallery-Archivist is not endorsed by or affiliated with any of the trademark holders.

---

## Usage

### Run without Docker

- **Step 1:** Clone repo

```bash
git clone https://git.aroy-art.com/Aroy/Gallery-Archivist.git
```

- **Step 2:** Change dir to the new cloned repo

```bash
cd Gallery-Archivist
```

- **Step 3:** Make a python environment

```bash
python3 -m venv venv  
```

- **Step 4:** Activate the new python environment

```bash
source ./venv/bin/activate
```

- **Step 5:** Install python dependencies

```bash
pip install -r requirements.txt
```

- **Step 6:** Copy environment config file and change it to your liking

```bash
cp env-sample .env
```

- **Step 7:** Change directory to `./archivist`

```bash
cd ./archivist
```

- **Step 8:** Run django server

```bash
python3 manage.py runserver
```

### Manual Import Data

It is possible to import data from saved gallery-dl json files

- **Step 1:** Make sure that you are in the root folder of the project.

- **Step 2:** Make sure to activate the python environment.

```bash
source ./venv/bin/activate
```

- **Step 3:** Change directory to `./archivist`

```bash
cd ./archivist
```

- **Step 4:** Import the json data and media file from gallery-dl  
replace `<path>` with the path of the folder or json file to import

```bash
python manage.py import_data <path>
```

## Development

### Without Docker

*Note!* Instructions are made for a modern linux environment.

- **Step 0:** Make sure that you have installed the dependencies.  
You need `git, python, python-virtualenv, redis`

- **Step 1:** Clone repo

```bash
git clone https://git.aroy-art.com/Aroy/Gallery-Archivist.git
```

- **Step 2:** Change dir to the new cloned repo

```bash
cd Gallery-Archivist
```

- **Step 3:** Make a python environment

```bash
python3 -m venv venv  
```

- **Step 4:** Activate the new python environment

```bash
source ./venv/bin/activate
```

- **Step 5:** Install python dependencies

```bash
pip install -r requirements.txt
```

- **Step 6:** Copy environment config file and change it to your liking

```bash
cp env-sample archivist/.env
```

- **Step 7:** Change directory to archivist

```bash
cd archivist
```

- **Step 8:** Run django database migrations

```bash
python manage.py migrate
```

- **Step 9:** Start the redis server

```bash
redis-server
```

- **Step :10** Open another shell inside of `archivist/` folder and start the django server

```bash
python3 manage.py runserver
```

- **Step :11** Open another shell inside of `archivist/` folder and start the celery worker

```bash
celery -A core worker -l info
```

- **Step :12** Open another shell inside of `archivist/` folder and start the celery beat

```bash
celery -A core beat -l info
```
