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
51bc0e82
Commit
51bc0e82
authored
Jul 31, 2017
by
kyos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added series and series_index metadata handler
parent
dde3b9b0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
4 deletions
+28
-4
epub.py
cps/epub.py
+14
-2
web.py
cps/web.py
+14
-2
No files found.
cps/epub.py
View file @
51bc0e82
...
...
@@ -71,6 +71,18 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
else
:
epub_metadata
[
'language'
]
=
""
series
=
tree
.
xpath
(
"/pkg:package/pkg:metadata/pkg:meta[@name='calibre:series']/@content"
,
namespaces
=
ns
)
if
len
(
series
)
>
0
:
epub_metadata
[
'series'
]
=
series
[
0
]
else
:
epub_metadata
[
'series'
]
=
''
series_id
=
tree
.
xpath
(
"/pkg:package/pkg:metadata/pkg:meta[@name='calibre:series_index']/@content"
,
namespaces
=
ns
)
if
len
(
series_id
)
>
0
:
epub_metadata
[
'series_id'
]
=
series_id
[
0
]
else
:
epub_metadata
[
'series_id'
]
=
'1'
coversection
=
tree
.
xpath
(
"/pkg:package/pkg:manifest/pkg:item[@id='cover-image']/@href"
,
namespaces
=
ns
)
coverfile
=
None
if
len
(
coversection
)
>
0
:
...
...
@@ -105,6 +117,6 @@ def get_epub_info(tmp_file_path, original_file_name, original_file_extension):
cover
=
coverfile
,
description
=
epub_metadata
[
'description'
],
tags
=
epub_metadata
[
'subject'
]
.
encode
(
'utf-8'
)
.
decode
(
'utf-8'
),
series
=
""
,
series_id
=
""
,
series
=
epub_metadata
[
'series'
]
.
encode
(
'utf-8'
)
.
decode
(
'utf-8'
)
,
series_id
=
epub_metadata
[
'series_id'
]
.
encode
(
'utf-8'
)
.
decode
(
'utf-8'
)
,
languages
=
epub_metadata
[
'language'
])
cps/web.py
View file @
51bc0e82
...
...
@@ -2929,6 +2929,8 @@ def upload():
title
=
meta
.
title
author
=
meta
.
author
tags
=
meta
.
tags
series
=
meta
.
series
series_index
=
meta
.
series_id
title_dir
=
helper
.
get_valid_filename
(
title
,
False
)
author_dir
=
helper
.
get_valid_filename
(
author
,
False
)
data_name
=
title_dir
...
...
@@ -2967,6 +2969,14 @@ def upload():
db_author
=
db
.
Authors
(
author
,
helper
.
get_sorted_author
(
author
),
""
)
db
.
session
.
add
(
db_author
)
db_series
=
None
is_series
=
db
.
session
.
query
(
db
.
Series
)
.
filter
(
db
.
Series
.
name
==
series
)
.
first
()
if
is_series
:
db_series
=
is_series
elif
series
!=
''
:
db_series
=
db
.
Series
(
series
,
""
)
db
.
session
.
add
(
db_series
)
# add language actually one value in list
input_language
=
meta
.
languages
db_language
=
None
...
...
@@ -2980,9 +2990,11 @@ def upload():
db
.
session
.
add
(
db_language
)
# combine path and normalize path from windows systems
path
=
os
.
path
.
join
(
author_dir
,
title_dir
)
.
replace
(
'
\\
'
,
'/'
)
db_book
=
db
.
Books
(
title
,
""
,
db_author
.
sort
,
datetime
.
datetime
.
now
(),
datetime
.
datetime
(
101
,
1
,
1
),
1
,
datetime
.
datetime
.
now
(),
path
,
has_cover
,
db_author
,
[],
db_language
)
db_book
=
db
.
Books
(
title
,
""
,
db_author
.
sort
,
datetime
.
datetime
.
now
(),
datetime
.
datetime
(
101
,
1
,
1
),
series_index
,
datetime
.
datetime
.
now
(),
path
,
has_cover
,
db_author
,
[],
db_language
)
db_book
.
authors
.
append
(
db_author
)
if
db_series
:
db_book
.
series
.
append
(
db_series
)
if
db_language
is
not
None
:
db_book
.
languages
.
append
(
db_language
)
db_data
=
db
.
Data
(
db_book
,
meta
.
extension
.
upper
()[
1
:],
file_size
,
data_name
)
...
...
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