mirror of
https://github.com/ajurna/cbwebreader.git
synced 2025-12-06 14:17:19 +00:00
Compare commits
3 Commits
0adfba1275
...
b01eb60eeb
| Author | SHA1 | Date | |
|---|---|---|---|
| b01eb60eeb | |||
| 306b237b01 | |||
| a7cb857c00 |
@@ -1,4 +1,4 @@
|
|||||||
FROM python:3.13-slim-bullseye
|
FROM python:3.13-slim-bookworm
|
||||||
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
||||||
|
|
||||||
ENV PYTHONFAULTHANDLER=1 \
|
ENV PYTHONFAULTHANDLER=1 \
|
||||||
@@ -19,7 +19,7 @@ COPY . /src/
|
|||||||
COPY pyproject.toml /src
|
COPY pyproject.toml /src
|
||||||
COPY uv.lock /src
|
COPY uv.lock /src
|
||||||
|
|
||||||
RUN echo "deb http://ftp.uk.debian.org/debian bullseye non-free non-free-firmware" > /etc/apt/sources.list.d/non-free.list
|
RUN echo "deb http://ftp.uk.debian.org/debian bookworm non-free non-free-firmware" > /etc/apt/sources.list.d/non-free.list
|
||||||
|
|
||||||
|
|
||||||
RUN apt update \
|
RUN apt update \
|
||||||
|
|||||||
17219
frontend/package-lock.json
generated
17219
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -11,38 +11,38 @@
|
|||||||
"@fortawesome/fontawesome-svg-core": "^6.1.2",
|
"@fortawesome/fontawesome-svg-core": "^6.1.2",
|
||||||
"@fortawesome/free-solid-svg-icons": "^6.1.2",
|
"@fortawesome/free-solid-svg-icons": "^6.1.2",
|
||||||
"@fortawesome/vue-fontawesome": "^3.0.1",
|
"@fortawesome/vue-fontawesome": "^3.0.1",
|
||||||
"axios": "1.8.2",
|
"axios": "^1.8.4",
|
||||||
"bootstrap": "^5.2.0",
|
"bootstrap": "^5.2.0",
|
||||||
"hammerjs": "^2.0.8",
|
"hammerjs": "^2.0.8",
|
||||||
"jwt-decode": "^3.1.2",
|
"jwt-decode": "^4.0.0",
|
||||||
"pdfvuer": "^2.0.1",
|
"pdfvuer": "^2.0.1",
|
||||||
"reveal.js": "^4.3.1",
|
"reveal.js": "^5.2.1",
|
||||||
"timeago.js": "^4.0.2",
|
"timeago.js": "^4.0.2",
|
||||||
"vue": "^3.2.13",
|
"vue": "^3.5.13",
|
||||||
"vue-router": "^4.0.3",
|
"vue-router": "^4.0.3",
|
||||||
"vue-toast-notification": "3.0",
|
"vue-toast-notification": "3.0",
|
||||||
"vuejs-paginate-next": "^1.0.2",
|
"vuejs-paginate-next": "^1.0.2",
|
||||||
"vuex": "^4.0.0",
|
"vuex": "^4.0.0",
|
||||||
"webpack": "5.94.0"
|
"webpack": "^5.98.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.12.16",
|
"@babel/core": "^7.26.10",
|
||||||
"@babel/eslint-parser": "^7.12.16",
|
"@babel/eslint-parser": "^7.12.16",
|
||||||
"@vue/cli-plugin-babel": "~5.0.0",
|
"@vue/cli-plugin-babel": "^5.0.8",
|
||||||
"@vue/cli-plugin-eslint": "~5.0.0",
|
"@vue/cli-plugin-eslint": "^5.0.8",
|
||||||
"@vue/cli-plugin-router": "~5.0.0",
|
"@vue/cli-plugin-router": "^5.0.0",
|
||||||
"@vue/cli-plugin-vuex": "~5.0.0",
|
"@vue/cli-plugin-vuex": "^5.0.0",
|
||||||
"@vue/cli-service": "~5.0.0",
|
"@vue/cli-service": "^5.0.8",
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^9.23.0",
|
||||||
"eslint-plugin-vue": "^8.0.3",
|
"eslint-plugin-vue": "^10.0.0",
|
||||||
"jshint": "^2.13.5",
|
"jshint": "^2.13.5",
|
||||||
"mini-css-extract-plugin": "^2.6.1",
|
"mini-css-extract-plugin": "^2.9.2",
|
||||||
"terser-webpack-plugin": "^5.3.6",
|
"style-loader": "^4.0.0",
|
||||||
"webpack-bundle-analyzer": "^4.6.1",
|
"terser-webpack-plugin": "^5.3.14",
|
||||||
"webpack-cli": "^4.10.0",
|
"vue-loader": "^17.4.2",
|
||||||
"webpack-bundle-tracker": "^1.6.0",
|
"webpack-bundle-analyzer": "^4.10.2",
|
||||||
"style-loader": "^3.3.1",
|
"webpack-bundle-tracker": "^3.1.1",
|
||||||
"vue-loader": "^17.0.0"
|
"webpack-cli": "^6.0.1"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import router from "@/router";
|
import router from "@/router";
|
||||||
import store from "@/store";
|
import store from "@/store";
|
||||||
import jwtDecode from "jwt-decode";
|
import { jwtDecode } from "jwt-decode";
|
||||||
|
|
||||||
async function get_access_token() {
|
async function get_access_token() {
|
||||||
let access = jwtDecode(store.state.jwt.access)
|
let access = jwtDecode(store.state.jwt.access)
|
||||||
|
|||||||
@@ -23,9 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<caption>
|
<h2>Reading History</h2>
|
||||||
<h2>Reading History</h2>
|
|
||||||
</caption>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<table class="table table-striped table-bordered">
|
<table class="table table-striped table-bordered">
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<caption>
|
|
||||||
<h2>Recent Comics - <a :href="'/feed/' + this.feed_id + '/'">Feed</a></h2>
|
<h2>Recent Comics - <a :href="'/feed/' + this.feed_id + '/'">Feed</a></h2>
|
||||||
Mark selected issues as:
|
Mark selected issues as:
|
||||||
<select class="form-select-sm" name="func" id="func_selector" @change="this.performFunction()" v-model="func_selected">
|
<select class="form-select-sm" name="func" id="func_selector" @change="this.performFunction()" v-model="func_selected">
|
||||||
@@ -31,7 +30,6 @@
|
|||||||
<option value="mark_read">Read</option>
|
<option value="mark_read">Read</option>
|
||||||
<option value="mark_unread">Un-Read</option>
|
<option value="mark_unread">Un-Read</option>
|
||||||
</select>
|
</select>
|
||||||
</caption>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<table class="table table-striped table-bordered">
|
<table class="table table-striped table-bordered">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { createStore } from 'vuex'
|
import { createStore } from 'vuex'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import jwtDecode from 'jwt-decode'
|
import { jwtDecode } from "jwt-decode";
|
||||||
import {useToast} from "vue-toast-notification";
|
import {useToast} from "vue-toast-notification";
|
||||||
import router from "@/router";
|
import router from "@/router";
|
||||||
import api from "@/api";
|
import api from "@/api";
|
||||||
|
|||||||
@@ -45,7 +45,8 @@ module.exports = () => {
|
|||||||
plugins: [
|
plugins: [
|
||||||
new VueLoaderPlugin(),
|
new VueLoaderPlugin(),
|
||||||
new BundleTracker({
|
new BundleTracker({
|
||||||
filename: './webpack-stats.json',
|
filename: 'webpack-stats.json',
|
||||||
|
path: path.resolve(__dirname, './'),
|
||||||
publicPath: 'http://localhost:8080/'
|
publicPath: 'http://localhost:8080/'
|
||||||
}),
|
}),
|
||||||
new webpack.DefinePlugin({
|
new webpack.DefinePlugin({
|
||||||
|
|||||||
@@ -46,7 +46,8 @@ module.exports = (env = {}) => {
|
|||||||
plugins: [
|
plugins: [
|
||||||
new VueLoaderPlugin(),
|
new VueLoaderPlugin(),
|
||||||
new BundleTracker({
|
new BundleTracker({
|
||||||
filename: './webpack-stats.json',
|
filename: 'webpack-stats.json',
|
||||||
|
path: path.resolve(__dirname, './'),
|
||||||
publicPath: '/static/bundles/',
|
publicPath: '/static/bundles/',
|
||||||
integrity: true
|
integrity: true
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "cbwebreader"
|
name = "cbwebreader"
|
||||||
version = "1.1.2"
|
version = "1.1.3"
|
||||||
description = "CBR/Z Web Reader"
|
description = "CBR/Z Web Reader"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
|
|||||||
Reference in New Issue
Block a user