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
5cce0121
Commit
5cce0121
authored
Jan 03, 2021
by
Ozzieisaacs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code refactoring ub.session.commit()
Code cosmentics admin.py
parent
4578af7a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
195 additions
and
282 deletions
+195
-282
admin.py
cps/admin.py
+147
-180
editbooks.py
cps/editbooks.py
+1
-1
kobo.py
cps/kobo.py
+11
-34
kobo_auth.py
cps/kobo_auth.py
+3
-9
oauth_bb.py
cps/oauth_bb.py
+9
-24
remotelogin.py
cps/remotelogin.py
+6
-7
shelf.py
cps/shelf.py
+2
-10
ub.py
cps/ub.py
+12
-1
web.py
cps/web.py
+4
-16
No files found.
cps/admin.py
View file @
5cce0121
This diff is collapsed.
Click to expand it.
cps/editbooks.py
View file @
5cce0121
...
@@ -240,7 +240,7 @@ def delete_book(book_id, book_format, jsonResponse):
...
@@ -240,7 +240,7 @@ def delete_book(book_id, book_format, jsonResponse):
ub
.
session
.
query
(
ub
.
BookShelf
)
.
filter
(
ub
.
BookShelf
.
book_id
==
book_id
)
.
delete
()
ub
.
session
.
query
(
ub
.
BookShelf
)
.
filter
(
ub
.
BookShelf
.
book_id
==
book_id
)
.
delete
()
ub
.
session
.
query
(
ub
.
ReadBook
)
.
filter
(
ub
.
ReadBook
.
book_id
==
book_id
)
.
delete
()
ub
.
session
.
query
(
ub
.
ReadBook
)
.
filter
(
ub
.
ReadBook
.
book_id
==
book_id
)
.
delete
()
ub
.
delete_download
(
book_id
)
ub
.
delete_download
(
book_id
)
ub
.
session
.
commit
()
ub
.
session
_
commit
()
# check if only this book links to:
# check if only this book links to:
# author, language, series, tags, custom columns
# author, language, series, tags, custom columns
...
...
cps/kobo.py
View file @
5cce0121
...
@@ -462,10 +462,7 @@ def HandleTagCreate():
...
@@ -462,10 +462,7 @@ def HandleTagCreate():
items_unknown_to_calibre
=
add_items_to_shelf
(
items
,
shelf
)
items_unknown_to_calibre
=
add_items_to_shelf
(
items
,
shelf
)
if
items_unknown_to_calibre
:
if
items_unknown_to_calibre
:
log
.
debug
(
"Received request to add unknown books to a collection. Silently ignoring items."
)
log
.
debug
(
"Received request to add unknown books to a collection. Silently ignoring items."
)
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
make_response
(
jsonify
(
str
(
shelf
.
uuid
)),
201
)
return
make_response
(
jsonify
(
str
(
shelf
.
uuid
)),
201
)
...
@@ -497,10 +494,7 @@ def HandleTagUpdate(tag_id):
...
@@ -497,10 +494,7 @@ def HandleTagUpdate(tag_id):
shelf
.
name
=
name
shelf
.
name
=
name
ub
.
session
.
merge
(
shelf
)
ub
.
session
.
merge
(
shelf
)
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
make_response
(
' '
,
200
)
return
make_response
(
' '
,
200
)
...
@@ -552,11 +546,7 @@ def HandleTagAddItem(tag_id):
...
@@ -552,11 +546,7 @@ def HandleTagAddItem(tag_id):
log
.
debug
(
"Received request to add an unknown book to a collection. Silently ignoring item."
)
log
.
debug
(
"Received request to add an unknown book to a collection. Silently ignoring item."
)
ub
.
session
.
merge
(
shelf
)
ub
.
session
.
merge
(
shelf
)
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
make_response
(
''
,
201
)
return
make_response
(
''
,
201
)
...
@@ -596,10 +586,7 @@ def HandleTagRemoveItem(tag_id):
...
@@ -596,10 +586,7 @@ def HandleTagRemoveItem(tag_id):
shelf
.
books
.
filter
(
ub
.
BookShelf
.
book_id
==
book
.
id
)
.
delete
()
shelf
.
books
.
filter
(
ub
.
BookShelf
.
book_id
==
book
.
id
)
.
delete
()
except
KeyError
:
except
KeyError
:
items_unknown_to_calibre
.
append
(
item
)
items_unknown_to_calibre
.
append
(
item
)
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
if
items_unknown_to_calibre
:
if
items_unknown_to_calibre
:
log
.
debug
(
"Received request to remove an unknown book to a collecition. Silently ignoring item."
)
log
.
debug
(
"Received request to remove an unknown book to a collecition. Silently ignoring item."
)
...
@@ -645,10 +632,7 @@ def sync_shelves(sync_token, sync_results):
...
@@ -645,10 +632,7 @@ def sync_shelves(sync_token, sync_results):
"ChangedTag"
:
tag
"ChangedTag"
:
tag
})
})
sync_token
.
tags_last_modified
=
new_tags_last_modified
sync_token
.
tags_last_modified
=
new_tags_last_modified
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
# Creates a Kobo "Tag" object from a ub.Shelf object
# Creates a Kobo "Tag" object from a ub.Shelf object
...
@@ -729,10 +713,7 @@ def HandleStateRequest(book_uuid):
...
@@ -729,10 +713,7 @@ def HandleStateRequest(book_uuid):
abort
(
400
,
description
=
"Malformed request data is missing 'ReadingStates' key"
)
abort
(
400
,
description
=
"Malformed request data is missing 'ReadingStates' key"
)
ub
.
session
.
merge
(
kobo_reading_state
)
ub
.
session
.
merge
(
kobo_reading_state
)
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
jsonify
({
return
jsonify
({
"RequestResult"
:
"Success"
,
"RequestResult"
:
"Success"
,
"UpdateResults"
:
[
update_results_response
],
"UpdateResults"
:
[
update_results_response
],
...
@@ -770,10 +751,10 @@ def get_or_create_reading_state(book_id):
...
@@ -770,10 +751,10 @@ def get_or_create_reading_state(book_id):
kobo_reading_state
.
statistics
=
ub
.
KoboStatistics
()
kobo_reading_state
.
statistics
=
ub
.
KoboStatistics
()
book_read
.
kobo_reading_state
=
kobo_reading_state
book_read
.
kobo_reading_state
=
kobo_reading_state
ub
.
session
.
add
(
book_read
)
ub
.
session
.
add
(
book_read
)
try
:
#
try:
ub
.
session
.
commit
()
#
ub.session.commit()
except
OperationalError
:
#
except OperationalError:
ub
.
session
.
rollback
()
#
ub.session.rollback()
return
book_read
.
kobo_reading_state
return
book_read
.
kobo_reading_state
...
@@ -876,11 +857,7 @@ def HandleBookDeletionRequest(book_uuid):
...
@@ -876,11 +857,7 @@ def HandleBookDeletionRequest(book_uuid):
archived_book
.
last_modified
=
datetime
.
datetime
.
utcnow
()
archived_book
.
last_modified
=
datetime
.
datetime
.
utcnow
()
ub
.
session
.
merge
(
archived_book
)
ub
.
session
.
merge
(
archived_book
)
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
(
""
,
204
)
return
(
""
,
204
)
...
...
cps/kobo_auth.py
View file @
5cce0121
...
@@ -148,10 +148,7 @@ def generate_auth_token(user_id):
...
@@ -148,10 +148,7 @@ def generate_auth_token(user_id):
auth_token
.
token_type
=
1
auth_token
.
token_type
=
1
ub
.
session
.
add
(
auth_token
)
ub
.
session
.
add
(
auth_token
)
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
render_title_template
(
return
render_title_template
(
"generate_kobo_auth_url.html"
,
"generate_kobo_auth_url.html"
,
title
=
_
(
u"Kobo Setup"
),
title
=
_
(
u"Kobo Setup"
),
...
@@ -168,8 +165,5 @@ def delete_auth_token(user_id):
...
@@ -168,8 +165,5 @@ def delete_auth_token(user_id):
# Invalidate any prevously generated Kobo Auth token for this user.
# Invalidate any prevously generated Kobo Auth token for this user.
ub
.
session
.
query
(
ub
.
RemoteAuthToken
)
.
filter
(
ub
.
RemoteAuthToken
.
user_id
==
user_id
)
\
ub
.
session
.
query
(
ub
.
RemoteAuthToken
)
.
filter
(
ub
.
RemoteAuthToken
.
user_id
==
user_id
)
\
.
filter
(
ub
.
RemoteAuthToken
.
token_type
==
1
)
.
delete
()
.
filter
(
ub
.
RemoteAuthToken
.
token_type
==
1
)
.
delete
()
try
:
ub
.
session
.
commit
()
return
ub
.
session_commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
""
cps/oauth_bb.py
View file @
5cce0121
...
@@ -85,11 +85,7 @@ def register_user_with_oauth(user=None):
...
@@ -85,11 +85,7 @@ def register_user_with_oauth(user=None):
except
NoResultFound
:
except
NoResultFound
:
# no found, return error
# no found, return error
return
return
try
:
ub
.
session_commit
(
"User {} with OAuth for provider {} registered"
.
format
(
user
.
nickname
,
oauth_key
))
ub
.
session
.
commit
()
except
Exception
as
e
:
log
.
debug_or_exception
(
e
)
ub
.
session
.
rollback
()
def
logout_oauth_user
():
def
logout_oauth_user
():
...
@@ -101,19 +97,12 @@ def logout_oauth_user():
...
@@ -101,19 +97,12 @@ def logout_oauth_user():
if
ub
.
oauth_support
:
if
ub
.
oauth_support
:
oauthblueprints
=
[]
oauthblueprints
=
[]
if
not
ub
.
session
.
query
(
ub
.
OAuthProvider
)
.
count
():
if
not
ub
.
session
.
query
(
ub
.
OAuthProvider
)
.
count
():
oauthProvider
=
ub
.
OAuthProvider
()
for
provider
in
(
"github"
,
"google"
):
oauthProvider
.
provider_name
=
"github"
oauthProvider
=
ub
.
OAuthProvider
()
oauthProvider
.
active
=
False
oauthProvider
.
provider_name
=
provider
ub
.
session
.
add
(
oauthProvider
)
oauthProvider
.
active
=
False
ub
.
session
.
commit
()
ub
.
session
.
add
(
oauthProvider
)
oauthProvider
=
ub
.
OAuthProvider
()
ub
.
session_commit
(
"{} Blueprint Created"
.
format
(
provider
))
oauthProvider
.
provider_name
=
"google"
oauthProvider
.
active
=
False
ub
.
session
.
add
(
oauthProvider
)
try
:
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
oauth_ids
=
ub
.
session
.
query
(
ub
.
OAuthProvider
)
.
all
()
oauth_ids
=
ub
.
session
.
query
(
ub
.
OAuthProvider
)
.
all
()
ele1
=
dict
(
provider_name
=
'github'
,
ele1
=
dict
(
provider_name
=
'github'
,
...
@@ -203,12 +192,8 @@ if ub.oauth_support:
...
@@ -203,12 +192,8 @@ if ub.oauth_support:
provider_user_id
=
provider_user_id
,
provider_user_id
=
provider_user_id
,
token
=
token
,
token
=
token
,
)
)
try
:
ub
.
session
.
add
(
oauth_entry
)
ub
.
session
.
add
(
oauth_entry
)
ub
.
session_commit
()
ub
.
session
.
commit
()
except
Exception
as
e
:
log
.
debug_or_exception
(
e
)
ub
.
session
.
rollback
()
# Disable Flask-Dance's default behavior for saving the OAuth token
# Disable Flask-Dance's default behavior for saving the OAuth token
# Value differrs depending on flask-dance version
# Value differrs depending on flask-dance version
...
...
cps/remotelogin.py
View file @
5cce0121
...
@@ -59,8 +59,7 @@ def remote_login_required(f):
...
@@ -59,8 +59,7 @@ def remote_login_required(f):
def
remote_login
():
def
remote_login
():
auth_token
=
ub
.
RemoteAuthToken
()
auth_token
=
ub
.
RemoteAuthToken
()
ub
.
session
.
add
(
auth_token
)
ub
.
session
.
add
(
auth_token
)
ub
.
session
.
commit
()
ub
.
session_commit
()
verify_url
=
url_for
(
'remotelogin.verify_token'
,
token
=
auth_token
.
auth_token
,
_external
=
true
)
verify_url
=
url_for
(
'remotelogin.verify_token'
,
token
=
auth_token
.
auth_token
,
_external
=
true
)
log
.
debug
(
u"Remot Login request with token:
%
s"
,
auth_token
.
auth_token
)
log
.
debug
(
u"Remot Login request with token:
%
s"
,
auth_token
.
auth_token
)
return
render_title_template
(
'remote_login.html'
,
title
=
_
(
u"login"
),
token
=
auth_token
.
auth_token
,
return
render_title_template
(
'remote_login.html'
,
title
=
_
(
u"login"
),
token
=
auth_token
.
auth_token
,
...
@@ -80,9 +79,9 @@ def verify_token(token):
...
@@ -80,9 +79,9 @@ def verify_token(token):
return
redirect
(
url_for
(
'web.index'
))
return
redirect
(
url_for
(
'web.index'
))
# Token expired
# Token expired
if
datetime
.
now
()
>
auth_token
.
expiration
:
el
if
datetime
.
now
()
>
auth_token
.
expiration
:
ub
.
session
.
delete
(
auth_token
)
ub
.
session
.
delete
(
auth_token
)
ub
.
session
.
commit
()
ub
.
session
_
commit
()
flash
(
_
(
u"Token has expired"
),
category
=
"error"
)
flash
(
_
(
u"Token has expired"
),
category
=
"error"
)
log
.
error
(
u"Remote Login token expired"
)
log
.
error
(
u"Remote Login token expired"
)
...
@@ -91,7 +90,7 @@ def verify_token(token):
...
@@ -91,7 +90,7 @@ def verify_token(token):
# Update token with user information
# Update token with user information
auth_token
.
user_id
=
current_user
.
id
auth_token
.
user_id
=
current_user
.
id
auth_token
.
verified
=
True
auth_token
.
verified
=
True
ub
.
session
.
commit
()
ub
.
session
_
commit
()
flash
(
_
(
u"Success! Please return to your device"
),
category
=
"success"
)
flash
(
_
(
u"Success! Please return to your device"
),
category
=
"success"
)
log
.
debug
(
u"Remote Login token for userid
%
s verified"
,
auth_token
.
user_id
)
log
.
debug
(
u"Remote Login token for userid
%
s verified"
,
auth_token
.
user_id
)
...
@@ -114,7 +113,7 @@ def token_verified():
...
@@ -114,7 +113,7 @@ def token_verified():
# Token expired
# Token expired
elif
datetime
.
now
()
>
auth_token
.
expiration
:
elif
datetime
.
now
()
>
auth_token
.
expiration
:
ub
.
session
.
delete
(
auth_token
)
ub
.
session
.
delete
(
auth_token
)
ub
.
session
.
commit
()
ub
.
session
_
commit
()
data
[
'status'
]
=
'error'
data
[
'status'
]
=
'error'
data
[
'message'
]
=
_
(
u"Token has expired"
)
data
[
'message'
]
=
_
(
u"Token has expired"
)
...
@@ -127,7 +126,7 @@ def token_verified():
...
@@ -127,7 +126,7 @@ def token_verified():
login_user
(
user
)
login_user
(
user
)
ub
.
session
.
delete
(
auth_token
)
ub
.
session
.
delete
(
auth_token
)
ub
.
session
.
commit
(
)
ub
.
session
_commit
(
"User {} logged in via remotelogin, token deleted"
.
format
(
user
.
nickname
)
)
data
[
'status'
]
=
'success'
data
[
'status'
]
=
'success'
log
.
debug
(
u"Remote Login for userid
%
s succeded"
,
user
.
id
)
log
.
debug
(
u"Remote Login for userid
%
s succeded"
,
user
.
id
)
...
...
cps/shelf.py
View file @
5cce0121
...
@@ -320,12 +320,7 @@ def delete_shelf_helper(cur_shelf):
...
@@ -320,12 +320,7 @@ def delete_shelf_helper(cur_shelf):
ub
.
session
.
delete
(
cur_shelf
)
ub
.
session
.
delete
(
cur_shelf
)
ub
.
session
.
query
(
ub
.
BookShelf
)
.
filter
(
ub
.
BookShelf
.
shelf
==
shelf_id
)
.
delete
()
ub
.
session
.
query
(
ub
.
BookShelf
)
.
filter
(
ub
.
BookShelf
.
shelf
==
shelf_id
)
.
delete
()
ub
.
session
.
add
(
ub
.
ShelfArchive
(
uuid
=
cur_shelf
.
uuid
,
user_id
=
cur_shelf
.
user_id
))
ub
.
session
.
add
(
ub
.
ShelfArchive
(
uuid
=
cur_shelf
.
uuid
,
user_id
=
cur_shelf
.
user_id
))
try
:
ub
.
session_commit
(
"successfully deleted Shelf {}"
.
format
(
cur_shelf
.
name
))
ub
.
session
.
commit
()
log
.
info
(
"successfully deleted
%
s"
,
cur_shelf
)
except
OperationalError
:
ub
.
session
.
rollback
()
@
shelf
.
route
(
"/shelf/delete/<int:shelf_id>"
)
@
shelf
.
route
(
"/shelf/delete/<int:shelf_id>"
)
...
@@ -388,10 +383,7 @@ def change_shelf_order(shelf_id, order):
...
@@ -388,10 +383,7 @@ def change_shelf_order(shelf_id, order):
book
=
ub
.
session
.
query
(
ub
.
BookShelf
)
.
filter
(
ub
.
BookShelf
.
shelf
==
shelf_id
)
\
book
=
ub
.
session
.
query
(
ub
.
BookShelf
)
.
filter
(
ub
.
BookShelf
.
shelf
==
shelf_id
)
\
.
filter
(
ub
.
BookShelf
.
book_id
==
entry
.
id
)
.
first
()
.
filter
(
ub
.
BookShelf
.
book_id
==
entry
.
id
)
.
first
()
book
.
order
=
index
book
.
order
=
index
try
:
ub
.
session_commit
(
"Shelf-id:{} - Order changed"
.
format
(
shelf_id
))
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
def
render_show_shelf
(
shelf_type
,
shelf_id
,
page_no
,
sort_param
):
def
render_show_shelf
(
shelf_type
,
shelf_id
,
page_no
,
sort_param
):
shelf
=
ub
.
session
.
query
(
ub
.
Shelf
)
.
filter
(
ub
.
Shelf
.
id
==
shelf_id
)
.
first
()
shelf
=
ub
.
session
.
query
(
ub
.
Shelf
)
.
filter
(
ub
.
Shelf
.
id
==
shelf_id
)
.
first
()
...
...
cps/ub.py
View file @
5cce0121
...
@@ -46,8 +46,9 @@ from sqlalchemy.orm.attributes import flag_modified
...
@@ -46,8 +46,9 @@ from sqlalchemy.orm.attributes import flag_modified
from
sqlalchemy.orm
import
backref
,
relationship
,
sessionmaker
,
Session
,
scoped_session
from
sqlalchemy.orm
import
backref
,
relationship
,
sessionmaker
,
Session
,
scoped_session
from
werkzeug.security
import
generate_password_hash
from
werkzeug.security
import
generate_password_hash
from
.
import
constants
from
.
import
constants
,
logger
log
=
logger
.
create
()
session
=
None
session
=
None
app_DB_path
=
None
app_DB_path
=
None
...
@@ -695,3 +696,13 @@ def dispose():
...
@@ -695,3 +696,13 @@ def dispose():
old_session
.
bind
.
dispose
()
old_session
.
bind
.
dispose
()
except
Exception
:
except
Exception
:
pass
pass
def
session_commit
(
success
=
None
):
try
:
session
.
commit
()
if
success
:
log
.
info
(
success
)
except
(
exc
.
OperationalError
,
exc
.
InvalidRequestError
)
as
e
:
session
.
rollback
()
log
.
debug_or_exception
(
e
)
return
""
cps/web.py
View file @
5cce0121
...
@@ -135,10 +135,7 @@ def bookmark(book_id, book_format):
...
@@ -135,10 +135,7 @@ def bookmark(book_id, book_format):
ub
.
Bookmark
.
book_id
==
book_id
,
ub
.
Bookmark
.
book_id
==
book_id
,
ub
.
Bookmark
.
format
==
book_format
))
.
delete
()
ub
.
Bookmark
.
format
==
book_format
))
.
delete
()
if
not
bookmark_key
:
if
not
bookmark_key
:
try
:
ub
.
session_commit
()
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
""
,
204
return
""
,
204
lbookmark
=
ub
.
Bookmark
(
user_id
=
current_user
.
id
,
lbookmark
=
ub
.
Bookmark
(
user_id
=
current_user
.
id
,
...
@@ -146,10 +143,7 @@ def bookmark(book_id, book_format):
...
@@ -146,10 +143,7 @@ def bookmark(book_id, book_format):
format
=
book_format
,
format
=
book_format
,
bookmark_key
=
bookmark_key
)
bookmark_key
=
bookmark_key
)
ub
.
session
.
merge
(
lbookmark
)
ub
.
session
.
merge
(
lbookmark
)
try
:
ub
.
session_commit
(
"Bookmark for user {} in book {} created"
.
format
(
current_user
.
id
,
book_id
))
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
""
,
201
return
""
,
201
...
@@ -174,10 +168,7 @@ def toggle_read(book_id):
...
@@ -174,10 +168,7 @@ def toggle_read(book_id):
kobo_reading_state
.
statistics
=
ub
.
KoboStatistics
()
kobo_reading_state
.
statistics
=
ub
.
KoboStatistics
()
book
.
kobo_reading_state
=
kobo_reading_state
book
.
kobo_reading_state
=
kobo_reading_state
ub
.
session
.
merge
(
book
)
ub
.
session
.
merge
(
book
)
try
:
ub
.
session_commit
(
"Book {} readbit toggled"
.
format
(
book_id
))
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
else
:
else
:
try
:
try
:
calibre_db
.
update_title_sort
(
config
)
calibre_db
.
update_title_sort
(
config
)
...
@@ -211,10 +202,7 @@ def toggle_archived(book_id):
...
@@ -211,10 +202,7 @@ def toggle_archived(book_id):
archived_book
=
ub
.
ArchivedBook
(
user_id
=
current_user
.
id
,
book_id
=
book_id
)
archived_book
=
ub
.
ArchivedBook
(
user_id
=
current_user
.
id
,
book_id
=
book_id
)
archived_book
.
is_archived
=
True
archived_book
.
is_archived
=
True
ub
.
session
.
merge
(
archived_book
)
ub
.
session
.
merge
(
archived_book
)
try
:
ub
.
session_commit
(
"Book {} archivebit toggled"
.
format
(
book_id
))
ub
.
session
.
commit
()
except
OperationalError
:
ub
.
session
.
rollback
()
return
""
return
""
...
...
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