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
fc10f55b
Commit
fc10f55b
authored
Mar 07, 2017
by
Kennyl
Committed by
GitHub
Mar 07, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into fix/syntax-python3-20170305
parents
297a08cd
789a1af6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
15494 additions
and
23208 deletions
+15494
-23208
book_formats.py
cps/book_formats.py
+0
-2
epub.py
cps/epub.py
+33
-38
messages.mo
cps/translations/pl/LC_MESSAGES/messages.mo
+0
-0
messages.po
cps/translations/pl/LC_MESSAGES/messages.po
+15456
-23163
uploader.py
cps/uploader.py
+1
-1
web.py
cps/web.py
+4
-4
No files found.
cps/book_formats.py
View file @
fc10f55b
...
...
@@ -64,7 +64,6 @@ def default_meta(tmp_file_path, original_file_name, original_file_extension):
tags
=
""
,
series
=
""
,
series_id
=
""
,
comments
=
""
,
languages
=
""
)
...
...
@@ -94,7 +93,6 @@ def pdf_meta(tmp_file_path, original_file_name, original_file_extension):
tags
=
""
,
series
=
""
,
series_id
=
""
,
comments
=
""
,
languages
=
""
)
...
...
cps/epub.py
View file @
fc10f55b
...
...
@@ -41,57 +41,53 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
p
=
tree
.
xpath
(
'/pkg:package/pkg:metadata'
,
namespaces
=
ns
)[
0
]
epub_metadata
=
{}
try
:
#maybe description isn't present
comments
=
tree
.
xpath
(
"//*[local-name() = 'description']/text()"
)[
0
]
epub_metadata
[
'comments'
]
=
comments
except
IndexError
as
e
:
epub_metadata
[
'comments'
]
=
""
for
s
in
[
'title'
,
'description'
,
'creator'
]:
for
s
in
[
'title'
,
'description'
,
'creator'
,
'language'
]:
tmp
=
p
.
xpath
(
'dc:
%
s/text()'
%
s
,
namespaces
=
ns
)
if
len
(
tmp
)
>
0
:
epub_metadata
[
s
]
=
p
.
xpath
(
'dc:
%
s/text()'
%
s
,
namespaces
=
ns
)[
0
]
else
:
epub_metadata
[
s
]
=
"Unknown"
#detect lang need futher modification in web.py /upload
try
:
#maybe dc:language isn't present, less possible but possible
lang
=
p
.
xpath
(
'dc:language/text()'
,
namespaces
=
ns
)[
0
]
lang
=
lang
.
split
(
'-'
,
1
)[
0
]
lang
.
lower
()
if
epub_metadata
[
'description'
]
==
"Unknown"
:
description
=
tree
.
xpath
(
"//*[local-name() = 'description']/text()"
)
if
len
(
description
)
>
0
:
epub_metadata
[
'description'
]
=
description
else
:
epub_metadata
[
'description'
]
=
""
if
epub_metadata
[
'language'
]
==
"Unknown"
:
epub_metadata
[
'language'
]
==
""
else
:
lang
=
epub_metadata
[
'language'
]
.
split
(
'-'
,
1
)[
0
]
.
lower
()
if
len
(
lang
)
==
2
:
epub_metadata
[
'language
s
'
]
=
isoLanguages
.
get
(
part1
=
lang
)
.
name
epub_metadata
[
'language'
]
=
isoLanguages
.
get
(
part1
=
lang
)
.
name
elif
len
(
lang
)
==
3
:
epub_metadata
[
'language
s
'
]
=
isoLanguages
.
get
(
part3
=
lang
)
.
name
epub_metadata
[
'language'
]
=
isoLanguages
.
get
(
part3
=
lang
)
.
name
else
:
epub_metadata
[
'languages'
]
=
""
except
IndexError
as
e
:
epub_metadata
[
'languages'
]
=
""
epub_metadata
[
'language'
]
=
""
coversection
=
tree
.
xpath
(
"/pkg:package/pkg:manifest/pkg:item[@id='cover-image']/@href"
,
namespaces
=
ns
)
coverfile
=
None
if
len
(
coversection
)
>
0
:
coverfile
=
extractCover
(
zip
,
coversection
[
0
],
coverpath
,
tmp_file_path
)
else
:
coversection
=
tree
.
xpath
(
"/pkg:package/pkg:manifest/pkg:item[@id='cover']/@href"
,
namespaces
=
ns
)
if
len
(
coversection
)
>
0
:
filetype
=
coversection
[
0
]
.
rsplit
(
'.'
,
1
)[
-
1
]
if
filetype
==
"xhtml"
or
filetype
==
"html"
:
#if cover is (x)html format
markup
=
zip
.
read
(
os
.
path
.
join
(
coverpath
,
coversection
[
0
]))
markupTree
=
etree
.
fromstring
(
markup
)
#no matter xhtml or html with no namespace
imgsrc
=
markupTree
.
xpath
(
"//*[local-name() = 'img']/@src"
)
#imgsrc maybe startwith "../"" so fullpath join then relpath to cwd
filename
=
os
.
path
.
relpath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
join
(
coverpath
,
coversection
[
0
])),
imgsrc
[
0
]))
coverfile
=
extractCover
(
zip
,
filename
,
""
,
tmp_file_path
)
else
:
coverfile
=
extractCover
(
zip
,
coversection
[
0
],
coverpath
,
tmp_file_path
)
else
:
meta_cover
=
tree
.
xpath
(
"/pkg:package/pkg:metadata/pkg:meta[@name='cover']/@content"
,
namespaces
=
ns
)
if
len
(
meta_cover
)
>
0
:
meta_cover_content
=
tree
.
xpath
(
"/pkg:package/pkg:manifest/pkg:item[@id='"
+
meta_cover
[
0
]
+
"']/@href"
,
namespaces
=
ns
)
if
len
(
meta_cover_content
)
>
0
:
coverfile
=
extractCover
(
zip
,
meta_cover_content
[
0
],
coverpath
,
tmp_file_path
)
meta_cover
=
tree
.
xpath
(
"/pkg:package/pkg:metadata/pkg:meta[@name='cover']/@content"
,
namespaces
=
ns
)
if
len
(
meta_cover
)
>
0
:
coversection
=
tree
.
xpath
(
"/pkg:package/pkg:manifest/pkg:item[@id='"
+
meta_cover
[
0
]
+
"']/@href"
,
namespaces
=
ns
)
if
len
(
coversection
)
>
0
:
filetype
=
coversection
[
0
]
.
rsplit
(
'.'
,
1
)[
-
1
]
if
filetype
==
"xhtml"
or
filetype
==
"html"
:
#if cover is (x)html format
markup
=
zip
.
read
(
os
.
path
.
join
(
coverpath
,
coversection
[
0
]))
markupTree
=
etree
.
fromstring
(
markup
)
#no matter xhtml or html with no namespace
imgsrc
=
markupTree
.
xpath
(
"//*[local-name() = 'img']/@src"
)
#imgsrc maybe startwith "../"" so fullpath join then relpath to cwd
filename
=
os
.
path
.
relpath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
join
(
coverpath
,
coversection
[
0
])),
imgsrc
[
0
]))
coverfile
=
extractCover
(
zip
,
filename
,
""
,
tmp_file_path
)
else
:
coverfile
=
extractCover
(
zip
,
coversection
[
0
],
coverpath
,
tmp_file_path
)
if
epub_metadata
[
'title'
]
is
None
:
title
=
original_file_name
else
:
...
...
@@ -107,5 +103,4 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
tags
=
""
,
series
=
""
,
series_id
=
""
,
comments
=
epub_metadata
[
'comments'
],
languages
=
epub_metadata
[
'languages'
])
languages
=
epub_metadata
[
'language'
])
cps/translations/pl/LC_MESSAGES/messages.mo
View file @
fc10f55b
No preview for this file type
cps/translations/pl/LC_MESSAGES/messages.po
View file @
fc10f55b
This diff is collapsed.
Click to expand it.
cps/uploader.py
View file @
fc10f55b
...
...
@@ -7,7 +7,7 @@ import hashlib
from
collections
import
namedtuple
import
book_formats
BookMeta
=
namedtuple
(
'BookMeta'
,
'file_path, extension, title, author, cover, description, tags, series, series_id,
comments,
languages'
)
BookMeta
=
namedtuple
(
'BookMeta'
,
'file_path, extension, title, author, cover, description, tags, series, series_id, languages'
)
"""
:rtype: BookMeta
...
...
cps/web.py
View file @
fc10f55b
...
...
@@ -683,9 +683,9 @@ def get_opds_download_link(book_id, format):
file_name
=
book
.
title
if
len
(
book
.
authors
)
>
0
:
file_name
=
book
.
authors
[
0
]
.
name
+
'-'
+
file_name
#
file_name = helper.get_valid_filename(file_name)
file_name
=
helper
.
get_valid_filename
(
file_name
)
response
=
make_response
(
send_from_directory
(
os
.
path
.
join
(
config
.
config_calibre_dir
,
book
.
path
),
data
.
name
+
"."
+
format
))
response
.
headers
[
"Content-Disposition"
]
=
"attachment; filename
=
\"
%
s.
%
s
\"
"
%
(
data
.
name
,
format
)
response
.
headers
[
"Content-Disposition"
]
=
"attachment; filename
*=UTF-8''
%
s.
%
s"
%
(
urllib
.
quote
(
file_name
.
encode
(
'utf8'
))
,
format
)
return
response
...
...
@@ -1295,7 +1295,7 @@ def get_download_link(book_id, format):
response
.
headers
[
"Content-Type"
]
=
mimetypes
.
types_map
[
'.'
+
format
]
except
Exception
as
e
:
pass
response
.
headers
[
"Content-Disposition"
]
=
"attachment; filename
=
\"
%
s.
%
s
\"
"
%
(
quote
(
file_name
.
encode
(
'utf-8'
)),
format
)
response
.
headers
[
"Content-Disposition"
]
=
"attachment; filename
*=UTF-8''
%
s.
%
s
"
%
(
quote
(
file_name
.
encode
(
'utf-8'
)),
format
)
return
response
else
:
abort
(
404
)
...
...
@@ -2246,7 +2246,7 @@ def upload():
db
.
session
.
add
(
db_book
)
db
.
session
.
flush
()
# flush content get db_book.id avalible
#add comment
upload_comment
=
Markup
(
meta
.
comments
)
.
unescape
()
upload_comment
=
Markup
(
meta
.
description
)
.
unescape
()
db_comment
=
None
if
upload_comment
!=
""
:
db_comment
=
db
.
Comments
(
upload_comment
,
db_book
.
id
)
...
...
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