├── .dockerignore ├── .gitignore ├── Dockerfile ├── Dockerfile.armv7l ├── Dockerfile.nginx ├── Dockerfile.worker ├── Images ├── default.png ├── reader.png ├── settings.png └── show_bookmarks.png ├── LICENSE ├── README.md ├── accounts ├── __init__.py ├── admin.py ├── apps.py ├── forms.py ├── models.py ├── templates │ ├── nosignup.html │ └── signup.html └── views.py ├── docker-compose.yml ├── docker.env ├── hlspy.env ├── manage.py ├── nginx.conf ├── pages ├── __init__.py ├── admin.py ├── apps.py ├── custom_read.py ├── dbaccess.py ├── forms.py ├── management │ └── commands │ │ ├── __init__.py │ │ ├── applysettings.py │ │ ├── createdefaultsu.py │ │ ├── generatesecretkey.py │ │ └── nltkdownload.py ├── migrations │ ├── 0001_initial.py │ ├── 0002_auto_20180718_1649.py │ ├── 0003_auto_20180718_1650.py │ ├── 0004_auto_20180722_1016.py │ ├── 0005_usersettings_total_tags.py │ ├── 0006_usersettings_buddy_list.py │ ├── 0007_auto_20180723_0944.py │ ├── 0008_auto_20180726_1216.py │ ├── 0009_usersettings_png_quality.py │ ├── 0010_usersettings_auto_archieve.py │ ├── 0011_library_tags.py │ ├── 0012_library_icon_url.py │ ├── 0013_auto_20180805_1521.py │ ├── 0014_auto_20180809_1307.py │ ├── 0015_usersettings_pagination_value.py │ ├── 0016_auto_20180925_1749.py │ ├── 0017_library_reader_mode.py │ ├── 0018_auto_20181011_0532.py │ ├── 0019_usersettings_reader_theme.py │ ├── 0020_library_subdir.py │ ├── 0021_auto_20181208_1553.py │ ├── 0022_auto_20181208_2051.py │ └── __init__.py ├── models.py ├── summarize.py ├── urls.py ├── utils.py └── views.py ├── reminiscence ├── __init__.py ├── celery.py ├── defaultsettings.py ├── dockersettings.py ├── settings.py ├── urls.py └── wsgi.py ├── requirements.txt ├── restapi ├── __init__.py ├── admin.py ├── apps.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── static ├── archive.svg ├── css │ ├── accounts.css │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── summernote-bs4.css │ └── text_layer_builder.css ├── external-link.svg ├── folder.svg ├── img │ └── full-bloom.png ├── js │ ├── annotator.min.js │ ├── bootbox.min.js │ ├── bootstrap.min.js │ ├── epub.min.js │ ├── jquery-3.3.1.min.js │ ├── main.js │ ├── pdf.min.js │ ├── pdf.worker.min.js │ ├── popper.min.js │ └── summernote-bs4.js └── menu.svg ├── templates ├── archive_not_found.html ├── base.html ├── home.html ├── home_dir.html ├── includes │ └── form.html ├── login.html ├── password_change.html ├── password_change_done.html └── public.html ├── tests ├── __init__.py ├── tests_drf.py ├── tests_home.py ├── tests_signup.py └── tests_sync.py └── vinanti ├── __init__.py ├── crawl.py ├── formdata.py ├── log.py ├── req.py ├── req_aio.py ├── req_urllib.py ├── utils.py └── vinanti.py /.dockerignore: -------------------------------------------------------------------------------- 1 | **/.git 2 | **/archive 3 | **/static 4 | **/logs 5 | **/db 6 | **/tmp 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | *.sqlite3 3 | *.pyc 4 | __pycache__/ 5 | archive/ 6 | static/favicons/ 7 | static/nltk_data/ 8 | db/ 9 | logs/ 10 | tmp/ 11 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.10-slim-bookworm 2 | 3 | WORKDIR /usr/src/reminiscence 4 | 5 | RUN apt-get update \ 6 | && apt-get install --no-install-recommends -y netcat-traditional htop \ 7 | && rm -rf /var/lib/apt/lists/* 8 | 9 | COPY requirements.txt . 10 | 11 | RUN pip install -r requirements.txt 12 | 13 | COPY . /usr/src/reminiscence 14 | 15 | RUN mkdir -p logs archive tmp \ 16 | && python manage.py applysettings --docker yes \ 17 | && python manage.py generatesecretkey 18 | -------------------------------------------------------------------------------- /Dockerfile.armv7l: -------------------------------------------------------------------------------- 1 | FROM python:3.11-slim-bookworm 2 | 3 | WORKDIR /usr/src/reminiscence 4 | 5 | RUN apt-get update \ 6 | && apt-get install --no-install-recommends -y \ 7 | build-essential \ 8 | libpq-dev \ 9 | libxml2 \ 10 | libxml2-dev \ 11 | libxslt1-dev \ 12 | python-dev-is-python3 \ 13 | python3-pyqt5 \ 14 | python3-pyqt5.qtwebengine \ 15 | libpython3-all-dev \ 16 | zlib1g-dev \ 17 | chromium \ 18 | netcat-traditional \ 19 | git \ 20 | htop \ 21 | && rm -rf /var/lib/apt/lists/* 22 | 23 | COPY requirements.txt . 24 | 25 | RUN pip install -r requirements.txt 26 | 27 | RUN pip install git+https://github.com/kanishka-linux/hlspy 28 | 29 | COPY . /usr/src/reminiscence 30 | 31 | RUN bash 32 | 33 | RUN mkdir -p logs archive tmp \ 34 | && python manage.py applysettings --docker yes \ 35 | && python manage.py generatesecretkey 36 | -------------------------------------------------------------------------------- /Dockerfile.nginx: -------------------------------------------------------------------------------- 1 | FROM nginx:latest 2 | COPY ./nginx.conf /etc/nginx/nginx.conf 3 | -------------------------------------------------------------------------------- /Dockerfile.worker: -------------------------------------------------------------------------------- 1 | FROM python:3.10-slim-bookworm 2 | 3 | WORKDIR /usr/src/reminiscence 4 | 5 | RUN apt-get update \ 6 | && apt-get install --no-install-recommends -y chromium netcat-traditional git htop \ 7 | && rm -rf /var/lib/apt/lists/* 8 | 9 | COPY requirements.txt . 10 | 11 | RUN pip install -r requirements.txt 12 | 13 | RUN pip install PyQt5 PyQtWebEngine sip git+https://github.com/kanishka-linux/hlspy 14 | 15 | COPY . /usr/src/reminiscence 16 | 17 | RUN mkdir -p logs archive tmp \ 18 | && python manage.py applysettings --docker yes \ 19 | -------------------------------------------------------------------------------- /Images/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanishka-linux/reminiscence/bd52d1641a819b5054d384be7a4a9cba42e16781/Images/default.png -------------------------------------------------------------------------------- /Images/reader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanishka-linux/reminiscence/bd52d1641a819b5054d384be7a4a9cba42e16781/Images/reader.png -------------------------------------------------------------------------------- /Images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanishka-linux/reminiscence/bd52d1641a819b5054d384be7a4a9cba42e16781/Images/settings.png -------------------------------------------------------------------------------- /Images/show_bookmarks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanishka-linux/reminiscence/bd52d1641a819b5054d384be7a4a9cba42e16781/Images/show_bookmarks.png -------------------------------------------------------------------------------- /accounts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanishka-linux/reminiscence/bd52d1641a819b5054d384be7a4a9cba42e16781/accounts/__init__.py -------------------------------------------------------------------------------- /accounts/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /accounts/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AccountsConfig(AppConfig): 5 | name = 'accounts' 6 | -------------------------------------------------------------------------------- /accounts/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from django.contrib.auth.forms import UserCreationForm 3 | from django.contrib.auth.models import User 4 | 5 | class SignUpForm(UserCreationForm): 6 | email = forms.CharField(max_length=254, required=True, widget=forms.EmailInput()) 7 | class Meta: 8 | model = User 9 | fields = ('username', 'email', 'password1', 'password2') 10 | -------------------------------------------------------------------------------- /accounts/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /accounts/templates/nosignup.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% load static %} 4 | 5 | {% block stylesheet %} 6 | 7 | {% endblock %} 8 | 9 | {% block body %} 10 |
39 | | Directory | 40 |Links | 41 |Action | 42 |
---|---|---|---|
49 | {{ key }} 50 | | 51 |52 | {{ value }} 53 | | 54 | 55 |
56 |
57 |
58 |
59 |
65 |
66 |
64 | |
67 |
68 |
43 | | 44 |Title | 45 |46 | | 65 | 64 |
---|---|---|
{% if fav_path %} |
71 |
72 | {{title}}
73 | {% if not is_subdir %}
74 |
75 | {{netloc}}
76 |
77 | {% if taglist %}
78 |
79 | {% for tag in taglist %}
80 | {{tag}}
81 | {% endfor %}
82 |
83 | {% endif %}
84 | {% endif %}
85 | |
86 |
87 |
88 |
89 |
115 |
116 |
117 | {% if not is_subdir %}
118 |
119 | {% endif %}
120 |
121 |
114 | |
122 |
22 | | Title | 23 |Action | 24 |
---|---|---|
{% if fav_path %} |
30 |
31 | {{title}}
32 | {% if not is_subdir %}
33 |
34 | {{netloc}}
35 |
36 | {% if taglist %}
37 |
38 | {% for tag in taglist %}
39 | {{tag}}
40 | {% endfor %}
41 |
42 | {% endif %}
43 | {% endif %}
44 | |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | |
54 |