Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
douban-api-proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
captainwong
douban-api-proxy
Commits
7d586b37
Commit
7d586b37
authored
Jul 10, 2021
by
cbartondock
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/janeczku/calibre-web
parents
91938fd1
a56e071a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
11 deletions
+22
-11
admin.py
cps/admin.py
+9
-1
helper.py
cps/helper.py
+8
-7
kobo.py
cps/kobo.py
+5
-3
No files found.
cps/admin.py
View file @
7d586b37
...
...
@@ -1349,7 +1349,8 @@ def _handle_new_user(to_save, content, languages, translations, kobo_support):
content
.
denied_tags
=
config
.
config_denied_tags
content
.
allowed_column_value
=
config
.
config_allowed_column_value
content
.
denied_column_value
=
config
.
config_denied_column_value
content
.
kobo_only_shelves_sync
=
0
# No default value for kobo sync shelf setting
# No default value for kobo sync shelf setting
content
.
kobo_only_shelves_sync
=
to_save
.
get
(
"kobo_only_shelves_sync"
,
0
)
==
"on"
ub
.
session
.
add
(
content
)
ub
.
session
.
commit
()
flash
(
_
(
u"User '
%(user)
s' created"
,
user
=
content
.
name
),
category
=
"success"
)
...
...
@@ -1368,6 +1369,13 @@ def _delete_user(content):
if
ub
.
session
.
query
(
ub
.
User
)
.
filter
(
ub
.
User
.
role
.
op
(
'&'
)(
constants
.
ROLE_ADMIN
)
==
constants
.
ROLE_ADMIN
,
ub
.
User
.
id
!=
content
.
id
)
.
count
():
if
content
.
name
!=
"Guest"
:
# Delete all books in shelfs belonging to user, all shelfs of user, downloadstat of user, read status
# and user itself
ub
.
session
.
query
(
ub
.
ReadBook
)
.
filter
(
ub
.
User
.
id
==
ub
.
ReadBook
.
user_id
)
.
delete
()
ub
.
session
.
query
(
ub
.
Downloads
)
.
filter
(
ub
.
User
.
id
==
ub
.
Downloads
.
user_id
)
.
delete
()
for
us
in
ub
.
session
.
query
(
ub
.
Shelf
)
.
filter
(
ub
.
User
.
id
==
ub
.
Shelf
.
user_id
):
ub
.
session
.
query
(
ub
.
BookShelf
)
.
filter
(
us
.
id
==
ub
.
BookShelf
.
shelf
)
.
delete
()
ub
.
session
.
query
(
ub
.
Shelf
)
.
filter
(
ub
.
User
.
id
==
ub
.
Shelf
.
user_id
)
.
delete
()
ub
.
session
.
query
(
ub
.
User
)
.
filter
(
ub
.
User
.
id
==
content
.
id
)
.
delete
()
ub
.
session_commit
()
log
.
info
(
u"User {} deleted"
.
format
(
content
.
name
))
...
...
cps/helper.py
View file @
7d586b37
...
...
@@ -329,11 +329,12 @@ def delete_book_file(book, calibrepath, book_format=None):
except
(
IOError
,
OSError
)
as
e
:
log
.
error
(
"Deleting authorpath for book
%
s failed:
%
s"
,
book
.
id
,
e
)
return
True
,
None
else
:
log
.
error
(
"Deleting book
%
s failed, book path not valid:
%
s"
,
book
.
id
,
book
.
path
)
return
True
,
_
(
"Deleting book
%(id)
s, book path not valid:
%(path)
s"
,
id
=
book
.
id
,
path
=
book
.
path
)
log
.
error
(
"Deleting book
%
s from database only, book path in database not valid:
%
s"
,
book
.
id
,
book
.
path
)
return
True
,
_
(
"Deleting book
%(id)
s from database only, book path in database not valid:
%(path)
s"
,
id
=
book
.
id
,
path
=
book
.
path
)
# Moves files in file storage during author/title rename, or from temp dir to file storage
...
...
@@ -382,7 +383,7 @@ def update_dir_structure_file(book_id, calibrepath, first_author, orignal_filepa
# os.unlink(os.path.normcase(os.path.join(dir_name, file)))
# change location in database to new author/title path
localbook
.
path
=
os
.
path
.
join
(
new_authordir
,
new_titledir
)
.
replace
(
'
\\
'
,
'/'
)
except
OSError
as
ex
:
except
(
OSError
)
as
ex
:
log
.
error
(
"Rename title from:
%
s to
%
s:
%
s"
,
path
,
new_path
,
ex
)
log
.
debug
(
ex
,
exc_info
=
True
)
return
_
(
"Rename title from: '
%(src)
s' to '
%(dest)
s' failed with error:
%(error)
s"
,
...
...
@@ -397,7 +398,7 @@ def update_dir_structure_file(book_id, calibrepath, first_author, orignal_filepa
file_format
.
name
=
new_name
if
not
orignal_filepath
and
len
(
os
.
listdir
(
os
.
path
.
dirname
(
path
)))
==
0
:
shutil
.
rmtree
(
os
.
path
.
dirname
(
path
))
except
OSError
as
ex
:
except
(
OSError
)
as
ex
:
log
.
error
(
"Rename file in path
%
s to
%
s:
%
s"
,
new_path
,
new_name
,
ex
)
log
.
debug
(
ex
,
exc_info
=
True
)
return
_
(
"Rename file in path '
%(src)
s' to '
%(dest)
s' failed with error:
%(error)
s"
,
...
...
cps/kobo.py
View file @
7d586b37
...
...
@@ -169,6 +169,7 @@ def HandleSyncRequest():
.
order_by
(
ub
.
ArchivedBook
.
last_modified
)
.
join
(
ub
.
BookShelf
,
db
.
Books
.
id
==
ub
.
BookShelf
.
book_id
)
.
join
(
ub
.
Shelf
)
.
filter
(
ub
.
Shelf
.
user_id
==
current_user
.
id
)
.
filter
(
ub
.
Shelf
.
kobo_sync
)
.
distinct
()
)
...
...
@@ -247,10 +248,11 @@ def HandleSyncRequest():
changed_reading_states
=
changed_reading_states
.
join
(
ub
.
BookShelf
,
ub
.
KoboReadingState
.
book_id
==
ub
.
BookShelf
.
book_id
)
\
.
join
(
ub
.
Shelf
)
\
.
filter
(
current_user
.
id
==
ub
.
Shelf
.
user_id
)
\
.
filter
(
ub
.
Shelf
.
kobo_sync
,
or_
(
func
.
datetime
(
ub
.
KoboReadingState
.
last_modified
)
>
sync_token
.
reading_state_last_modified
,
ub
.
BookShelf
.
date_added
>
sync_token
.
books_last_modified
func
.
datetime
(
ub
.
BookShelf
.
date_added
)
>
sync_token
.
books_last_modified
))
.
distinct
()
else
:
changed_reading_states
=
changed_reading_states
.
filter
(
...
...
@@ -668,10 +670,10 @@ def sync_shelves(sync_token, sync_results, only_kobo_shelves=False):
for
shelf
in
ub
.
session
.
query
(
ub
.
Shelf
)
.
outerjoin
(
ub
.
BookShelf
)
.
filter
(
or_
(
func
.
datetime
(
ub
.
Shelf
.
last_modified
)
>
sync_token
.
tags_last_modified
,
ub
.
BookShelf
.
date_added
>
sync_token
.
tags_last_modified
),
func
.
datetime
(
ub
.
BookShelf
.
date_added
)
>
sync_token
.
tags_last_modified
),
ub
.
Shelf
.
user_id
==
current_user
.
id
,
*
extra_filters
)
.
distinct
()
.
order_by
(
func
.
datetime
(
ub
.
Shelf
.
last_modified
)
.
asc
()):
)
.
distinct
()
.
order_by
(
func
.
datetime
(
ub
.
Shelf
.
last_modified
)
.
asc
()):
# .columns(ub.Shelf):
if
not
shelf_lib
.
check_shelf_view_permissions
(
shelf
):
continue
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment