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
fb6a37ee
Commit
fb6a37ee
authored
Mar 02, 2017
by
Jack Darlington
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update for covers download via opds + inserts permissions if needed (only available with a link)
parent
df9124f7
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
7 deletions
+29
-7
gdriveutils.py
cps/gdriveutils.py
+11
-0
web.py
cps/web.py
+18
-7
No files found.
cps/gdriveutils.py
View file @
fb6a37ee
...
...
@@ -34,7 +34,18 @@ class GdriveId(Base):
def
__repr__
(
self
):
return
str
(
self
.
path
)
class
PermissionAdded
(
Base
):
__tablename__
=
'permissions_added'
id
=
Column
(
Integer
,
primary_key
=
True
)
gdrive_id
=
Column
(
Integer
,
unique
=
True
)
def
__repr__
(
self
):
return
str
(
self
.
gdrive_id
)
def
migrate
():
if
not
engine
.
dialect
.
has_table
(
engine
.
connect
(),
"permissions_added"
):
PermissionAdded
.
__table__
.
create
(
bind
=
engine
)
for
sql
in
session
.
execute
(
"select sql from sqlite_master where type='table'"
):
if
'CREATE TABLE gdrive_ids'
in
sql
[
0
]:
currUniqueConstraint
=
'UNIQUE (gdrive_id)'
...
...
cps/web.py
View file @
fb6a37ee
...
...
@@ -1413,13 +1413,26 @@ def advanced_search():
return
render_title_template
(
'search_form.html'
,
tags
=
tags
,
languages
=
languages
,
series
=
series
,
title
=
_
(
u"search"
))
def
get_cover_via_gdrive
(
cover_path
):
df
=
gdriveutils
.
getFileFromEbooksFolder
(
Gdrive
.
Instance
()
.
drive
,
cover_path
,
'cover.jpg'
)
if
not
gdriveutils
.
session
.
query
(
gdriveutils
.
PermissionAdded
)
.
filter
(
gdriveutils
.
PermissionAdded
.
gdrive_id
==
df
[
'id'
])
.
first
():
permissions
=
df
.
GetPermissions
()
df
.
InsertPermission
({
'type'
:
'anyone'
,
'value'
:
'anyone'
,
'role'
:
'reader'
,
'withLink'
:
True
})
permissionAdded
=
gdriveutils
.
PermissionAdded
()
permissionAdded
.
gdrive_id
=
df
[
'id'
]
gdriveutils
.
session
.
add
(
permissionAdded
)
gdriveutils
.
session
.
commit
()
return
df
.
metadata
.
get
(
'webContentLink'
)
@
app
.
route
(
"/cover/<path:cover_path>"
)
@
login_required_if_no_ano
def
get_cover
(
cover_path
):
if
config
.
config_use_google_drive
:
df
=
gdriveutils
.
getFileFromEbooksFolder
(
Gdrive
.
Instance
()
.
drive
,
cover_path
,
'cover.jpg'
)
download_url
=
df
.
metadata
.
get
(
'webContentLink'
)
return
redirect
(
download_url
)
return
redirect
(
get_cover_via_gdrive
(
cover_path
))
else
:
return
send_from_directory
(
os
.
path
.
join
(
config
.
config_calibre_dir
,
cover_path
),
"cover.jpg"
)
...
...
@@ -1432,11 +1445,9 @@ def get_cover(cover_path):
def
feed_get_cover
(
book_id
):
book
=
db
.
session
.
query
(
db
.
Books
)
.
filter
(
db
.
Books
.
id
==
book_id
)
.
first
()
if
config
.
config_use_google_drive
:
df
=
gdriveutils
.
getFileFromEbooksFolder
(
Gdrive
.
Instance
()
.
drive
,
cover_path
,
'cover.jpg'
)
download_url
=
df
.
metadata
.
get
(
'webContentLink'
)
return
redirect
(
download_url
)
return
redirect
(
get_cover_via_gdrive
(
book
.
path
))
else
:
return
send_from_directory
(
os
.
path
.
join
(
config
.
config_calibre_dir
,
cover_
path
),
"cover.jpg"
)
return
send_from_directory
(
os
.
path
.
join
(
config
.
config_calibre_dir
,
book
.
path
),
"cover.jpg"
)
def
render_read_books
(
page
,
are_read
,
as_xml
=
False
):
readBooks
=
ub
.
session
.
query
(
ub
.
ReadBook
)
.
filter
(
ub
.
ReadBook
.
user_id
==
int
(
current_user
.
id
))
.
filter
(
ub
.
ReadBook
.
is_read
==
True
)
.
all
()
...
...
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