From 2e8411c6b44d40597c2c2d58f5860f52f216e77f Mon Sep 17 00:00:00 2001 From: luxick Date: Mon, 19 Feb 2018 22:56:31 +0100 Subject: [PATCH] Add build script. --- bin/cardvault | 2 - build.py | 17 ++ cardvault/__init__.py | 1 - cardvault/__main__.py | 10 + .../cv_engine}/__init__.py | 0 .../cv_engine}/database.py | 0 {cv_engine => cardvault/cv_engine}/engine.py | 35 +--- {cv_engine => cardvault/cv_engine}/models.py | 0 {cv_engine => cardvault/cv_engine}/util.py | 18 -- {cv_gtk3 => cardvault/cv_gtk3}/__init__.py | 0 {cv_gtk3 => cardvault/cv_gtk3}/card_view.py | 6 +- .../cv_gtk3/dialogs.py | 0 .../gtkui.py => cardvault/cv_gtk3/gtk_ui.py | 17 +- cardvault/cv_gtk3/gtk_util.py | 176 ++++++++++++++++++ {cv_gtk3 => cardvault/cv_gtk3}/main_window.py | 0 .../resources}/gui/cardtree.glade | 0 .../resources}/gui/detailswindow.glade | 0 .../{ => cv_gtk3/resources}/gui/dialogs.glade | 0 .../{ => cv_gtk3/resources}/gui/library.glade | 0 .../cv_gtk3/resources}/gui/mainwindow.glade | 2 +- .../resources}/gui/overlays.glade | 0 .../cv_gtk3/resources}/gui/search.glade | 0 .../{ => cv_gtk3/resources}/gui/wants.glade | 0 .../{ => cv_gtk3}/resources/images/demo.jpg | Bin .../{ => cv_gtk3}/resources/images/dummy.jpg | Bin .../resources/images/dummy_315x450.png | Bin cardvault/{ => cv_gtk3}/resources/mana/0.png | Bin cardvault/{ => cv_gtk3}/resources/mana/1.png | Bin cardvault/{ => cv_gtk3}/resources/mana/10.png | Bin cardvault/{ => cv_gtk3}/resources/mana/11.png | Bin cardvault/{ => cv_gtk3}/resources/mana/12.png | Bin cardvault/{ => cv_gtk3}/resources/mana/13.png | Bin cardvault/{ => cv_gtk3}/resources/mana/14.png | Bin cardvault/{ => cv_gtk3}/resources/mana/15.png | Bin cardvault/{ => cv_gtk3}/resources/mana/16.png | Bin cardvault/{ => cv_gtk3}/resources/mana/17.png | Bin cardvault/{ => cv_gtk3}/resources/mana/18.png | Bin cardvault/{ => cv_gtk3}/resources/mana/19.png | Bin cardvault/{ => cv_gtk3}/resources/mana/2.png | Bin cardvault/{ => cv_gtk3}/resources/mana/20.png | Bin cardvault/{ => cv_gtk3}/resources/mana/2b.png | Bin cardvault/{ => cv_gtk3}/resources/mana/2g.png | Bin cardvault/{ => cv_gtk3}/resources/mana/2r.png | Bin cardvault/{ => cv_gtk3}/resources/mana/2u.png | Bin cardvault/{ => cv_gtk3}/resources/mana/2w.png | Bin cardvault/{ => cv_gtk3}/resources/mana/3.png | Bin cardvault/{ => cv_gtk3}/resources/mana/4.png | Bin cardvault/{ => cv_gtk3}/resources/mana/5.png | Bin cardvault/{ => cv_gtk3}/resources/mana/6.png | Bin cardvault/{ => cv_gtk3}/resources/mana/7.png | Bin cardvault/{ => cv_gtk3}/resources/mana/8.png | Bin cardvault/{ => cv_gtk3}/resources/mana/9.png | Bin .../{ => cv_gtk3}/resources/mana/B-G.png | Bin .../{ => cv_gtk3}/resources/mana/B-P.png | Bin .../{ => cv_gtk3}/resources/mana/B-R.png | Bin cardvault/{ => cv_gtk3}/resources/mana/B.png | Bin .../{ => cv_gtk3}/resources/mana/B_alt.png | Bin cardvault/{ => cv_gtk3}/resources/mana/C.png | Bin .../{ => cv_gtk3}/resources/mana/C_alt.png | Bin .../{ => cv_gtk3}/resources/mana/G-P.png | Bin .../{ => cv_gtk3}/resources/mana/G-U.png | Bin .../{ => cv_gtk3}/resources/mana/G-W.png | Bin cardvault/{ => cv_gtk3}/resources/mana/G.png | Bin .../{ => cv_gtk3}/resources/mana/G_alt.png | Bin .../{ => cv_gtk3}/resources/mana/R-G.png | Bin .../{ => cv_gtk3}/resources/mana/R-P.png | Bin .../{ => cv_gtk3}/resources/mana/R-W.png | Bin cardvault/{ => cv_gtk3}/resources/mana/R.png | Bin .../{ => cv_gtk3}/resources/mana/R_alt.png | Bin cardvault/{ => cv_gtk3}/resources/mana/S.png | Bin cardvault/{ => cv_gtk3}/resources/mana/T.png | Bin .../{ => cv_gtk3}/resources/mana/U-B.png | Bin .../{ => cv_gtk3}/resources/mana/U-P.png | Bin .../{ => cv_gtk3}/resources/mana/U-R.png | Bin cardvault/{ => cv_gtk3}/resources/mana/U.png | Bin .../{ => cv_gtk3}/resources/mana/U_alt.png | Bin .../{ => cv_gtk3}/resources/mana/W-B.png | Bin .../{ => cv_gtk3}/resources/mana/W-P.png | Bin .../{ => cv_gtk3}/resources/mana/W-U.png | Bin cardvault/{ => cv_gtk3}/resources/mana/W.png | Bin .../{ => cv_gtk3}/resources/mana/W_alt.png | Bin cardvault/{ => cv_gtk3}/resources/mana/X.png | Bin cardvault/{ => cv_gtk3}/resources/mana/Y.png | Bin cardvault/{ => cv_gtk3}/resources/mana/Z.png | Bin .../{ => cv_gtk3}/resources/mana/flip.png | Bin .../{ => cv_gtk3}/resources/mana/half.png | Bin .../{ => cv_gtk3}/resources/mana/infinite.png | Bin .../{ => cv_gtk3}/resources/mana/tap_old.png | Bin .../{ => cv_gtk3}/resources/mana/untap.png | Bin {cv_gtk3 => cardvault/cv_gtk3}/setting.py | 0 cardvault/cv_gtk3/signal_handlers/__init__.py | 0 .../cv_gtk3}/signal_handlers/handlers.py | 0 .../cv_gtk3}/signal_handlers/menu_bar.py | 0 .../cv_gtk3}/signal_handlers/search.py | 8 +- cardvault/resources/cardvault.desktop | 8 - cardvault/resources/cardvault.png | Bin 18393 -> 0 bytes cv_gtk3/gtk_util.py | 95 ---------- {cardvault => legacy}/application.py | 40 ++-- {cardvault => legacy}/cardlist.py | 37 ++-- {cardvault => legacy}/database.py | 0 {cv_gtk3 => legacy}/gui/cardtree.glade | 0 {cv_gtk3 => legacy}/gui/detailswindow.glade | 0 {cv_gtk3 => legacy}/gui/dialogs.glade | 0 {cv_gtk3 => legacy}/gui/library.glade | 0 {cardvault => legacy}/gui/mainwindow.glade | 0 {cv_gtk3 => legacy}/gui/overlays.glade | 0 {cardvault => legacy}/gui/search.glade | 0 {cv_gtk3 => legacy}/gui/wants.glade | 0 {cardvault => legacy}/handlers.py | 14 +- {cardvault => legacy}/library.py | 0 {cv_gtk3 => legacy}/resources/images/demo.jpg | Bin .../resources/images/dummy.jpg | Bin .../resources/images/dummy_315x450.png | Bin {cv_gtk3 => legacy}/resources/mana/0.png | Bin {cv_gtk3 => legacy}/resources/mana/1.png | Bin {cv_gtk3 => legacy}/resources/mana/10.png | Bin {cv_gtk3 => legacy}/resources/mana/11.png | Bin {cv_gtk3 => legacy}/resources/mana/12.png | Bin {cv_gtk3 => legacy}/resources/mana/13.png | Bin {cv_gtk3 => legacy}/resources/mana/14.png | Bin {cv_gtk3 => legacy}/resources/mana/15.png | Bin {cv_gtk3 => legacy}/resources/mana/16.png | Bin {cv_gtk3 => legacy}/resources/mana/17.png | Bin {cv_gtk3 => legacy}/resources/mana/18.png | Bin {cv_gtk3 => legacy}/resources/mana/19.png | Bin {cv_gtk3 => legacy}/resources/mana/2.png | Bin {cv_gtk3 => legacy}/resources/mana/20.png | Bin {cv_gtk3 => legacy}/resources/mana/2b.png | Bin {cv_gtk3 => legacy}/resources/mana/2g.png | Bin {cv_gtk3 => legacy}/resources/mana/2r.png | Bin {cv_gtk3 => legacy}/resources/mana/2u.png | Bin {cv_gtk3 => legacy}/resources/mana/2w.png | Bin {cv_gtk3 => legacy}/resources/mana/3.png | Bin {cv_gtk3 => legacy}/resources/mana/4.png | Bin {cv_gtk3 => legacy}/resources/mana/5.png | Bin {cv_gtk3 => legacy}/resources/mana/6.png | Bin {cv_gtk3 => legacy}/resources/mana/7.png | Bin {cv_gtk3 => legacy}/resources/mana/8.png | Bin {cv_gtk3 => legacy}/resources/mana/9.png | Bin {cv_gtk3 => legacy}/resources/mana/B-G.png | Bin {cv_gtk3 => legacy}/resources/mana/B-P.png | Bin {cv_gtk3 => legacy}/resources/mana/B-R.png | Bin {cv_gtk3 => legacy}/resources/mana/B.png | Bin {cv_gtk3 => legacy}/resources/mana/B_alt.png | Bin {cv_gtk3 => legacy}/resources/mana/C.png | Bin {cv_gtk3 => legacy}/resources/mana/C_alt.png | Bin {cv_gtk3 => legacy}/resources/mana/G-P.png | Bin {cv_gtk3 => legacy}/resources/mana/G-U.png | Bin {cv_gtk3 => legacy}/resources/mana/G-W.png | Bin {cv_gtk3 => legacy}/resources/mana/G.png | Bin {cv_gtk3 => legacy}/resources/mana/G_alt.png | Bin {cv_gtk3 => legacy}/resources/mana/R-G.png | Bin {cv_gtk3 => legacy}/resources/mana/R-P.png | Bin {cv_gtk3 => legacy}/resources/mana/R-W.png | Bin {cv_gtk3 => legacy}/resources/mana/R.png | Bin {cv_gtk3 => legacy}/resources/mana/R_alt.png | Bin {cv_gtk3 => legacy}/resources/mana/S.png | Bin {cv_gtk3 => legacy}/resources/mana/T.png | Bin {cv_gtk3 => legacy}/resources/mana/U-B.png | Bin {cv_gtk3 => legacy}/resources/mana/U-P.png | Bin {cv_gtk3 => legacy}/resources/mana/U-R.png | Bin {cv_gtk3 => legacy}/resources/mana/U.png | Bin {cv_gtk3 => legacy}/resources/mana/U_alt.png | Bin {cv_gtk3 => legacy}/resources/mana/W-B.png | Bin {cv_gtk3 => legacy}/resources/mana/W-P.png | Bin {cv_gtk3 => legacy}/resources/mana/W-U.png | Bin {cv_gtk3 => legacy}/resources/mana/W.png | Bin {cv_gtk3 => legacy}/resources/mana/W_alt.png | Bin {cv_gtk3 => legacy}/resources/mana/X.png | Bin {cv_gtk3 => legacy}/resources/mana/Y.png | Bin {cv_gtk3 => legacy}/resources/mana/Z.png | Bin {cv_gtk3 => legacy}/resources/mana/flip.png | Bin {cv_gtk3 => legacy}/resources/mana/half.png | Bin .../resources/mana/infinite.png | Bin .../resources/mana/tap_old.png | Bin {cv_gtk3 => legacy}/resources/mana/untap.png | Bin {cardvault => legacy}/search.py | 20 +- {cardvault => legacy}/util.py | 22 +-- {cardvault => legacy}/wants.py | 0 setup.cfg | 3 - setup.py | 41 ---- 181 files changed, 288 insertions(+), 284 deletions(-) delete mode 100644 bin/cardvault create mode 100644 build.py delete mode 100644 cardvault/__init__.py create mode 100644 cardvault/__main__.py rename {cv_engine => cardvault/cv_engine}/__init__.py (100%) rename {cv_engine => cardvault/cv_engine}/database.py (100%) rename {cv_engine => cardvault/cv_engine}/engine.py (59%) rename {cv_engine => cardvault/cv_engine}/models.py (100%) rename {cv_engine => cardvault/cv_engine}/util.py (84%) rename {cv_gtk3 => cardvault/cv_gtk3}/__init__.py (100%) rename {cv_gtk3 => cardvault/cv_gtk3}/card_view.py (94%) rename cv_gtk3/signal_handlers/__init__.py => cardvault/cv_gtk3/dialogs.py (100%) rename cv_gtk3/gtkui.py => cardvault/cv_gtk3/gtk_ui.py (84%) create mode 100644 cardvault/cv_gtk3/gtk_util.py rename {cv_gtk3 => cardvault/cv_gtk3}/main_window.py (100%) rename cardvault/{ => cv_gtk3/resources}/gui/cardtree.glade (100%) rename cardvault/{ => cv_gtk3/resources}/gui/detailswindow.glade (100%) rename cardvault/{ => cv_gtk3/resources}/gui/dialogs.glade (100%) rename cardvault/{ => cv_gtk3/resources}/gui/library.glade (100%) rename {cv_gtk3 => cardvault/cv_gtk3/resources}/gui/mainwindow.glade (99%) rename cardvault/{ => cv_gtk3/resources}/gui/overlays.glade (100%) rename {cv_gtk3 => cardvault/cv_gtk3/resources}/gui/search.glade (100%) rename cardvault/{ => cv_gtk3/resources}/gui/wants.glade (100%) rename cardvault/{ => cv_gtk3}/resources/images/demo.jpg (100%) rename cardvault/{ => cv_gtk3}/resources/images/dummy.jpg (100%) rename cardvault/{ => cv_gtk3}/resources/images/dummy_315x450.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/0.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/1.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/10.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/11.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/12.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/13.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/14.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/15.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/16.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/17.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/18.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/19.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/2.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/20.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/2b.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/2g.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/2r.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/2u.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/2w.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/3.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/4.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/5.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/6.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/7.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/8.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/9.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/B-G.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/B-P.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/B-R.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/B.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/B_alt.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/C.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/C_alt.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/G-P.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/G-U.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/G-W.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/G.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/G_alt.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/R-G.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/R-P.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/R-W.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/R.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/R_alt.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/S.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/T.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/U-B.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/U-P.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/U-R.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/U.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/U_alt.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/W-B.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/W-P.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/W-U.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/W.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/W_alt.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/X.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/Y.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/Z.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/flip.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/half.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/infinite.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/tap_old.png (100%) rename cardvault/{ => cv_gtk3}/resources/mana/untap.png (100%) rename {cv_gtk3 => cardvault/cv_gtk3}/setting.py (100%) create mode 100644 cardvault/cv_gtk3/signal_handlers/__init__.py rename {cv_gtk3 => cardvault/cv_gtk3}/signal_handlers/handlers.py (100%) rename {cv_gtk3 => cardvault/cv_gtk3}/signal_handlers/menu_bar.py (100%) rename {cv_gtk3 => cardvault/cv_gtk3}/signal_handlers/search.py (90%) delete mode 100644 cardvault/resources/cardvault.desktop delete mode 100644 cardvault/resources/cardvault.png delete mode 100644 cv_gtk3/gtk_util.py rename {cardvault => legacy}/application.py (94%) rename {cardvault => legacy}/cardlist.py (73%) rename {cardvault => legacy}/database.py (100%) rename {cv_gtk3 => legacy}/gui/cardtree.glade (100%) rename {cv_gtk3 => legacy}/gui/detailswindow.glade (100%) rename {cv_gtk3 => legacy}/gui/dialogs.glade (100%) rename {cv_gtk3 => legacy}/gui/library.glade (100%) rename {cardvault => legacy}/gui/mainwindow.glade (100%) rename {cv_gtk3 => legacy}/gui/overlays.glade (100%) rename {cardvault => legacy}/gui/search.glade (100%) rename {cv_gtk3 => legacy}/gui/wants.glade (100%) rename {cardvault => legacy}/handlers.py (98%) rename {cardvault => legacy}/library.py (100%) rename {cv_gtk3 => legacy}/resources/images/demo.jpg (100%) rename {cv_gtk3 => legacy}/resources/images/dummy.jpg (100%) rename {cv_gtk3 => legacy}/resources/images/dummy_315x450.png (100%) rename {cv_gtk3 => legacy}/resources/mana/0.png (100%) rename {cv_gtk3 => legacy}/resources/mana/1.png (100%) rename {cv_gtk3 => legacy}/resources/mana/10.png (100%) rename {cv_gtk3 => legacy}/resources/mana/11.png (100%) rename {cv_gtk3 => legacy}/resources/mana/12.png (100%) rename {cv_gtk3 => legacy}/resources/mana/13.png (100%) rename {cv_gtk3 => legacy}/resources/mana/14.png (100%) rename {cv_gtk3 => legacy}/resources/mana/15.png (100%) rename {cv_gtk3 => legacy}/resources/mana/16.png (100%) rename {cv_gtk3 => legacy}/resources/mana/17.png (100%) rename {cv_gtk3 => legacy}/resources/mana/18.png (100%) rename {cv_gtk3 => legacy}/resources/mana/19.png (100%) rename {cv_gtk3 => legacy}/resources/mana/2.png (100%) rename {cv_gtk3 => legacy}/resources/mana/20.png (100%) rename {cv_gtk3 => legacy}/resources/mana/2b.png (100%) rename {cv_gtk3 => legacy}/resources/mana/2g.png (100%) rename {cv_gtk3 => legacy}/resources/mana/2r.png (100%) rename {cv_gtk3 => legacy}/resources/mana/2u.png (100%) rename {cv_gtk3 => legacy}/resources/mana/2w.png (100%) rename {cv_gtk3 => legacy}/resources/mana/3.png (100%) rename {cv_gtk3 => legacy}/resources/mana/4.png (100%) rename {cv_gtk3 => legacy}/resources/mana/5.png (100%) rename {cv_gtk3 => legacy}/resources/mana/6.png (100%) rename {cv_gtk3 => legacy}/resources/mana/7.png (100%) rename {cv_gtk3 => legacy}/resources/mana/8.png (100%) rename {cv_gtk3 => legacy}/resources/mana/9.png (100%) rename {cv_gtk3 => legacy}/resources/mana/B-G.png (100%) rename {cv_gtk3 => legacy}/resources/mana/B-P.png (100%) rename {cv_gtk3 => legacy}/resources/mana/B-R.png (100%) rename {cv_gtk3 => legacy}/resources/mana/B.png (100%) rename {cv_gtk3 => legacy}/resources/mana/B_alt.png (100%) rename {cv_gtk3 => legacy}/resources/mana/C.png (100%) rename {cv_gtk3 => legacy}/resources/mana/C_alt.png (100%) rename {cv_gtk3 => legacy}/resources/mana/G-P.png (100%) rename {cv_gtk3 => legacy}/resources/mana/G-U.png (100%) rename {cv_gtk3 => legacy}/resources/mana/G-W.png (100%) rename {cv_gtk3 => legacy}/resources/mana/G.png (100%) rename {cv_gtk3 => legacy}/resources/mana/G_alt.png (100%) rename {cv_gtk3 => legacy}/resources/mana/R-G.png (100%) rename {cv_gtk3 => legacy}/resources/mana/R-P.png (100%) rename {cv_gtk3 => legacy}/resources/mana/R-W.png (100%) rename {cv_gtk3 => legacy}/resources/mana/R.png (100%) rename {cv_gtk3 => legacy}/resources/mana/R_alt.png (100%) rename {cv_gtk3 => legacy}/resources/mana/S.png (100%) rename {cv_gtk3 => legacy}/resources/mana/T.png (100%) rename {cv_gtk3 => legacy}/resources/mana/U-B.png (100%) rename {cv_gtk3 => legacy}/resources/mana/U-P.png (100%) rename {cv_gtk3 => legacy}/resources/mana/U-R.png (100%) rename {cv_gtk3 => legacy}/resources/mana/U.png (100%) rename {cv_gtk3 => legacy}/resources/mana/U_alt.png (100%) rename {cv_gtk3 => legacy}/resources/mana/W-B.png (100%) rename {cv_gtk3 => legacy}/resources/mana/W-P.png (100%) rename {cv_gtk3 => legacy}/resources/mana/W-U.png (100%) rename {cv_gtk3 => legacy}/resources/mana/W.png (100%) rename {cv_gtk3 => legacy}/resources/mana/W_alt.png (100%) rename {cv_gtk3 => legacy}/resources/mana/X.png (100%) rename {cv_gtk3 => legacy}/resources/mana/Y.png (100%) rename {cv_gtk3 => legacy}/resources/mana/Z.png (100%) rename {cv_gtk3 => legacy}/resources/mana/flip.png (100%) rename {cv_gtk3 => legacy}/resources/mana/half.png (100%) rename {cv_gtk3 => legacy}/resources/mana/infinite.png (100%) rename {cv_gtk3 => legacy}/resources/mana/tap_old.png (100%) rename {cv_gtk3 => legacy}/resources/mana/untap.png (100%) rename {cardvault => legacy}/search.py (97%) rename {cardvault => legacy}/util.py (94%) rename {cardvault => legacy}/wants.py (100%) delete mode 100644 setup.cfg delete mode 100755 setup.py diff --git a/bin/cardvault b/bin/cardvault deleted file mode 100644 index 0e47180..0000000 --- a/bin/cardvault +++ /dev/null @@ -1,2 +0,0 @@ -from cardvault import application -application.main() \ No newline at end of file diff --git a/build.py b/build.py new file mode 100644 index 0000000..44d7c55 --- /dev/null +++ b/build.py @@ -0,0 +1,17 @@ +""" +Package cardvault using zipapp into an executable zip archive +""" +import os +import zipapp + +INTERPRETER = '/usr/bin/env python3' +TARGET_FILENAME = 'cardvault' + +# The bundled file should be placed into the build directory +target_path = os.path.join(os.path.dirname(__file__), 'build') +# Make sure it exists +if not os.path.isdir(target_path): + os.mkdir(target_path) +target = os.path.join(target_path, TARGET_FILENAME) +# Create archive +zipapp.create_archive(source='cardvault', target=target, interpreter=INTERPRETER) diff --git a/cardvault/__init__.py b/cardvault/__init__.py deleted file mode 100644 index 5315975..0000000 --- a/cardvault/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from cardvault import application \ No newline at end of file diff --git a/cardvault/__main__.py b/cardvault/__main__.py new file mode 100644 index 0000000..95c7f99 --- /dev/null +++ b/cardvault/__main__.py @@ -0,0 +1,10 @@ +import sys + +import os.path +path = os.path.realpath(os.path.abspath(__file__)) +sys.path.insert(0, os.path.dirname(path)) + +from cv_gtk3 import gtk_ui + +if __name__ == '__main__': + gtk_ui.main() \ No newline at end of file diff --git a/cv_engine/__init__.py b/cardvault/cv_engine/__init__.py similarity index 100% rename from cv_engine/__init__.py rename to cardvault/cv_engine/__init__.py diff --git a/cv_engine/database.py b/cardvault/cv_engine/database.py similarity index 100% rename from cv_engine/database.py rename to cardvault/cv_engine/database.py diff --git a/cv_engine/engine.py b/cardvault/cv_engine/engine.py similarity index 59% rename from cv_engine/engine.py rename to cardvault/cv_engine/engine.py index bb99f97..e79824a 100644 --- a/cv_engine/engine.py +++ b/cardvault/cv_engine/engine.py @@ -1,4 +1,3 @@ -import json import os import itertools @@ -8,8 +7,7 @@ from cv_engine.util import EngineConfig, EngineConstants, Utilities class CardvaultEngine: def __init__(self, config_file=False): - """ - Create a new cv_engine instance + """ Create a new cv_engine instance :param config_file: File path of the configuration file """ if config_file: @@ -18,23 +16,20 @@ class CardvaultEngine: self.database = CardvaultDB(db_file_path) def get_card(self, card_id): - """ - Load a card object from database + """ Load a card object from database :param card_id: multiverse id of a card :return: an cv_engine.model.Card object """ return self.database.card_load(card_id) def get_library(self) -> list: - """ - Get the complete library of cards + """ Get the complete library of cards :return: Alphabetically ordered list of all cards in library """ return self.database.lib_get_all() def get_all_categories(self) -> dict: - """ - Get all categories an the cards that are contained within them + """ Get all categories an the cards that are contained within them :return: A dict with the category names and cv_engine.models.Card objects as values """ categories = self.database.category_get_all() @@ -54,25 +49,5 @@ class CardvaultEngine: if __name__ == "__main__": + # Test code engine = CardvaultEngine() - - # Insert Data into Datasbase - # print("Database insert test:") - # engine.database.db_clear_data_card() - # cards = Utilities.parse_mtgjson_cards(json.load(open("/home/luxick/Downloads/AllSets-x.json"))) - # engine.database.card_insert_many(cards) - - # Compare JSON Data to Data in Database - # for card in Utilities.parse_mtgjson_cards(json.load(open("/home/luxick/Downloads/AllSets-x.json"))): - # if card.multiverse_id: - # print('From JSON: {}'.format(card.names)) - # print('From DB: {}\n'.format(engine.database.card_load(card.multiverse_id).names)) - - # Search test - # term = 'fire' - # for result in engine.database.card_search_by_name(term): - # print(str(result), end='\n\n') - # Fast load test - # engine.database.card_fast_load() - # all_ids = engine.database.db_all_multiverse_ids() - # print('Loaded IDs: {}'.format(len(all_ids))) diff --git a/cv_engine/models.py b/cardvault/cv_engine/models.py similarity index 100% rename from cv_engine/models.py rename to cardvault/cv_engine/models.py diff --git a/cv_engine/util.py b/cardvault/cv_engine/util.py similarity index 84% rename from cv_engine/util.py rename to cardvault/cv_engine/util.py index 0a17f50..99219f6 100644 --- a/cv_engine/util.py +++ b/cardvault/cv_engine/util.py @@ -35,14 +35,6 @@ class EngineConstants: config_path = os.path.join(os.path.expanduser('~'), '.config', 'cardvault') -class GTKConstants: - """ - Constants for the GTK Ui - """ - # Directory in witch glade ui files are stored - glade_files = '/gui' - - class MTGConstants: """ This class contains constants that can be used within the whole program @@ -98,13 +90,3 @@ class Utilities: cards.append(c) output = output + cards return output - - @staticmethod - def expand_file_path(base_file, sub_dirs) -> str: - """ - Get absolute file path relative to another file - :param base_file: Current file from witch to expand - :param sub_dirs: List of sub directories to desired file - :return: Full file path of chosen file - """ - return os.path.join(os.path.dirname(base_file), *sub_dirs) \ No newline at end of file diff --git a/cv_gtk3/__init__.py b/cardvault/cv_gtk3/__init__.py similarity index 100% rename from cv_gtk3/__init__.py rename to cardvault/cv_gtk3/__init__.py diff --git a/cv_gtk3/card_view.py b/cardvault/cv_gtk3/card_view.py similarity index 94% rename from cv_gtk3/card_view.py rename to cardvault/cv_gtk3/card_view.py index b9e36d6..985f980 100644 --- a/cv_gtk3/card_view.py +++ b/cardvault/cv_gtk3/card_view.py @@ -8,9 +8,8 @@ from cv_engine.util import MTGConstants class CardView(Gtk.ScrolledWindow): """ Class for displaying a list of cards in an GTKTreeView """ - def __init__(self, ui_file, filtered): + def __init__(self, filtered): """ Constructor for a card list display - :param ui_file: Full path to an CardView glade file :param filtered: Should the card list be filterable """ self.filtered = filtered @@ -21,12 +20,13 @@ class CardView(Gtk.ScrolledWindow): self.set_vexpand(True) # Build UI self.ui = Gtk.Builder() - self.ui.add_from_file(ui_file) + self.ui.add_from_string(GTKUtilities.load_ui_resource('cardtree.glade')) self.tree = self.ui.get_object('cardTree') self.store = self.ui.get_object('cardStore') self.store.set_sort_func(4, self.compare_rarity, None) # Add the TreeView self.add(self.tree) + #self.tree.connect("row-activated", self.on_row_double_click) def get_selected_cards(self): """ Get the currently selected cards in the TreeView diff --git a/cv_gtk3/signal_handlers/__init__.py b/cardvault/cv_gtk3/dialogs.py similarity index 100% rename from cv_gtk3/signal_handlers/__init__.py rename to cardvault/cv_gtk3/dialogs.py diff --git a/cv_gtk3/gtkui.py b/cardvault/cv_gtk3/gtk_ui.py similarity index 84% rename from cv_gtk3/gtkui.py rename to cardvault/cv_gtk3/gtk_ui.py index a429ed7..ba22d7c 100644 --- a/cv_gtk3/gtkui.py +++ b/cardvault/cv_gtk3/gtk_ui.py @@ -1,6 +1,7 @@ -import gi import os +import gi + gi.require_version('Gtk', '3.0') from gi.repository import Gtk @@ -17,13 +18,11 @@ class CardvaultGTK(MainWindowFunctions): def __init__(self): # Start engine (without config file) self.engine = engine.CardvaultEngine() - # Set Glade file location - GUISettings.glade_file_path = os.path.join(os.path.dirname(__file__), 'gui') # Load Glade files glade_files = ['mainwindow.glade', 'search.glade', 'overlays.glade'] self.ui = Gtk.Builder() for file in glade_files: - self.ui.add_from_file(os.path.join(GUISettings.glade_file_path, file)) + self.ui.add_from_string(GTKUtilities.load_ui_resource(file)) # Set pages for the ui to use GUISettings.pages = { "search": self.ui.get_object("searchView"), @@ -34,8 +33,7 @@ class CardvaultGTK(MainWindowFunctions): if not os.path.isdir(util.EngineConfig.icon_cache_path): os.mkdir(util.EngineConfig.icon_cache_path) # Load single mana icons - GTKUtilities.mana_icons = GTKUtilities.load_icon_cache(os.path.join(os.path.dirname(__file__), 'resources', - 'mana')) + GTKUtilities.mana_icons = GTKUtilities.load_icon_cache(os.path.join(GTKUtilities.resources_path, 'mana')) # Load the the pre constructed icon cache GTKUtilities.precon_icon_cache = GTKUtilities.load_icon_cache(util.EngineConfig.icon_cache_path) # Call constructor of superclasses @@ -48,7 +46,12 @@ class CardvaultGTK(MainWindowFunctions): self.hide_initial_widgets() self.switch_page('search') -if __name__ == '__main__': + +def main(): CardvaultGTK() Gtk.main() +if __name__ == '__main__': + main() + + diff --git a/cardvault/cv_gtk3/gtk_util.py b/cardvault/cv_gtk3/gtk_util.py new file mode 100644 index 0000000..730912c --- /dev/null +++ b/cardvault/cv_gtk3/gtk_util.py @@ -0,0 +1,176 @@ +import os +import re + +from gi.repository import GdkPixbuf +from zipfile import ZipFile + +try: + from PIL import Image +except ImportError as err: + print('PIL imaging library is not installed') + +from cv_engine.util import EngineConfig + + +class GTKUtilities: + """ Access to image caches and utilities for use in the GTK application """ + # Loaded mana symbols Format: {'B': GDKPixbuf, '3': GDKPixbuf} + mana_icons = {} + # Cache for combined mana cost icons + precon_icon_cache = {} + # Path of Gtk resources relative to cardvault base package + resources_path = os.path.join('cv_gtk3', 'resources') + + @staticmethod + def get_path_from_base_dir(*dirs): + return os.path.join(os.path.dirname(os.path.dirname(__file__)), *dirs) + + @staticmethod + def get_mana_icons(mana_string): + """ Return the combined mana symbols for a mana string + :param mana_string: String in the format '{3}{U}{B}' + :return: GdkPixbuf containing the combined symbols + """ + if not mana_string: + return + icon_list = re.findall("{(.*?)}", mana_string.replace("/", "-")) + icon_name = "_".join(icon_list) + try: + icon = GTKUtilities.precon_icon_cache[icon_name] + except KeyError: + icon = GTKUtilities.create_mana_icons(mana_string) + GTKUtilities.precon_icon_cache[icon_name] = icon + # Scale icon for display + if icon: + icon = icon.scale_simple(icon.get_width() / 5, icon.get_height() / 5, GdkPixbuf.InterpType.HYPER) + return icon + + @staticmethod + def create_mana_icons(mana_string): + # Convert the string to a List + glyphs = re.findall("{(.*?)}", mana_string) + if len(glyphs) == 0: + return + # Compute horizontal size for the final image + size = len(glyphs) * 105 + image = Image.new("RGBA", (size, 105)) + for index, icon in enumerate(glyphs): + x_pos = index * 105 + try: + # Try loading mana icon and converting to PIL.Image for combining + loaded = GTKUtilities.pixbuf_to_image(GTKUtilities.mana_icons[icon]) + except KeyError: + print('Mana icon "{}" is not loaded.'.format(icon)) + return + image.paste(loaded, (x_pos, 0)) + # Save pre build icon file + path = os.path.join(EngineConfig.icon_cache_path, "_".join(glyphs) + ".png") + image.save(path) + try: + pixbuf = GdkPixbuf.Pixbuf.new_from_file(path) + except Exception as ex: + print(ex) + return + return pixbuf + + @staticmethod + def pixbuf_to_image(pix): + """Convert gdkpixbuf to PIL image""" + data = pix.get_pixels() + w = pix.props.width + h = pix.props.height + stride = pix.props.rowstride + mode = "RGB" + if pix.props.has_alpha: + mode = "RGBA" + im = Image.frombytes(mode, (w, h), data, "raw", mode, stride) + + return im + + @staticmethod + def load_ui_resource(resource_name): + """ Load GUI resource depending on the execution mode (from a directory or from a zip file) + :param resource_name: Name of the glade file + :return: String content of the resource file + """ + if os.path.isdir(os.path.dirname(__file__)): + return GTKUtilities.load_ui_resource_file(os.path.join(GTKUtilities.resources_path, 'gui', resource_name)) + else: + zip_path = os.path.dirname(os.path.dirname(__file__)) + return GTKUtilities.load_ui_resource_zip(zip_path, + os.path.join(GTKUtilities.resources_path, 'gui', resource_name)) + + @staticmethod + def load_ui_resource_file(resource_path): + """ LOad GUI resource from file path + :param resource_path: Relative path of the resource based on the cardvault base package + :return: String content of the resource file + """ + full_path = GTKUtilities.get_path_from_base_dir(resource_path) + with open(full_path, 'r') as file: + return file.read() + + @staticmethod + def load_ui_resource_zip(archive_file, resource_path): + """ Load GUI resource from a zip archive (for usage in release mode) + :param archive_file: Full path of the archive file + :param resource_path: Path of the resources within the archive + :return: String representation of the file content + """ + with ZipFile(archive_file, 'r') as archive: + return archive.read(resource_path).decode('utf-8') + + @staticmethod + def load_icon_cache(icon_path): + """ Get a dictionary with all available mana icons + :param icon_path: Relative path of icon resource files + :return: Dict with icon names and Gdkpixbuf objects + """ + if os.path.isdir(GTKUtilities.get_path_from_base_dir(icon_path)): + return GTKUtilities.load_icon_cache_file(GTKUtilities.get_path_from_base_dir(icon_path)) + else: + zip_path = os.path.dirname(os.path.dirname(__file__)) + return GTKUtilities.load_icon_cache_zip(zip_path) + + @staticmethod + def load_icon_cache_file(icon_path): + """ Load icon cache from absolute paths at file system + :param icon_path: Relative path of icon resource files + :return: Dict with icon names and Gdkpixbuf object + """ + icons = {} + files = os.listdir(icon_path) + for file in files: + try: + pixbuf = GdkPixbuf.Pixbuf.new_from_file(os.path.join(icon_path, file)) + # Strip filename extension + icon_name = os.path.splitext(file)[0] + icons[icon_name] = pixbuf + except Exception as ex: + print('Error while loading icon file "{}"'.format(ex)) + return icons + + @staticmethod + def load_icon_cache_zip(zip_path): + """ Load icon cache from zipped archive + :param zip_path: Full path of the zip archive + :return: Dict with icon names and Gdkpixbuf object + """ + with ZipFile(zip_path, 'r') as archive: + icon_path = os.path.join('cv_gtk3', 'resources', 'mana') + files = [path for path in archive.namelist() if os.path.isfile(path.startswith(icon_path))] + icons = {} + for file in files: + with archive.open(file) as data: + try: + loader = GdkPixbuf.PixbufLoader() + loader.write(data.read()) + pixbuf = loader.get_pixbuf() + loader.close() + # Strip filename extension + icon_name = os.path.splitext(file)[0] + icons[icon_name] = pixbuf + except Exception as ex: + print('Error while loading icon file "{0}"\n{1}'.format(file, ex)) + return icons + diff --git a/cv_gtk3/main_window.py b/cardvault/cv_gtk3/main_window.py similarity index 100% rename from cv_gtk3/main_window.py rename to cardvault/cv_gtk3/main_window.py diff --git a/cardvault/gui/cardtree.glade b/cardvault/cv_gtk3/resources/gui/cardtree.glade similarity index 100% rename from cardvault/gui/cardtree.glade rename to cardvault/cv_gtk3/resources/gui/cardtree.glade diff --git a/cardvault/gui/detailswindow.glade b/cardvault/cv_gtk3/resources/gui/detailswindow.glade similarity index 100% rename from cardvault/gui/detailswindow.glade rename to cardvault/cv_gtk3/resources/gui/detailswindow.glade diff --git a/cardvault/gui/dialogs.glade b/cardvault/cv_gtk3/resources/gui/dialogs.glade similarity index 100% rename from cardvault/gui/dialogs.glade rename to cardvault/cv_gtk3/resources/gui/dialogs.glade diff --git a/cardvault/gui/library.glade b/cardvault/cv_gtk3/resources/gui/library.glade similarity index 100% rename from cardvault/gui/library.glade rename to cardvault/cv_gtk3/resources/gui/library.glade diff --git a/cv_gtk3/gui/mainwindow.glade b/cardvault/cv_gtk3/resources/gui/mainwindow.glade similarity index 99% rename from cv_gtk3/gui/mainwindow.glade rename to cardvault/cv_gtk3/resources/gui/mainwindow.glade index e44902d..3d44db3 100644 --- a/cv_gtk3/gui/mainwindow.glade +++ b/cardvault/cv_gtk3/resources/gui/mainwindow.glade @@ -6,7 +6,7 @@ Card Vault False Card Vault - 900 + 1200 700 cardvault diff --git a/cardvault/gui/overlays.glade b/cardvault/cv_gtk3/resources/gui/overlays.glade similarity index 100% rename from cardvault/gui/overlays.glade rename to cardvault/cv_gtk3/resources/gui/overlays.glade diff --git a/cv_gtk3/gui/search.glade b/cardvault/cv_gtk3/resources/gui/search.glade similarity index 100% rename from cv_gtk3/gui/search.glade rename to cardvault/cv_gtk3/resources/gui/search.glade diff --git a/cardvault/gui/wants.glade b/cardvault/cv_gtk3/resources/gui/wants.glade similarity index 100% rename from cardvault/gui/wants.glade rename to cardvault/cv_gtk3/resources/gui/wants.glade diff --git a/cardvault/resources/images/demo.jpg b/cardvault/cv_gtk3/resources/images/demo.jpg similarity index 100% rename from cardvault/resources/images/demo.jpg rename to cardvault/cv_gtk3/resources/images/demo.jpg diff --git a/cardvault/resources/images/dummy.jpg b/cardvault/cv_gtk3/resources/images/dummy.jpg similarity index 100% rename from cardvault/resources/images/dummy.jpg rename to cardvault/cv_gtk3/resources/images/dummy.jpg diff --git a/cardvault/resources/images/dummy_315x450.png b/cardvault/cv_gtk3/resources/images/dummy_315x450.png similarity index 100% rename from cardvault/resources/images/dummy_315x450.png rename to cardvault/cv_gtk3/resources/images/dummy_315x450.png diff --git a/cardvault/resources/mana/0.png b/cardvault/cv_gtk3/resources/mana/0.png similarity index 100% rename from cardvault/resources/mana/0.png rename to cardvault/cv_gtk3/resources/mana/0.png diff --git a/cardvault/resources/mana/1.png b/cardvault/cv_gtk3/resources/mana/1.png similarity index 100% rename from cardvault/resources/mana/1.png rename to cardvault/cv_gtk3/resources/mana/1.png diff --git a/cardvault/resources/mana/10.png b/cardvault/cv_gtk3/resources/mana/10.png similarity index 100% rename from cardvault/resources/mana/10.png rename to cardvault/cv_gtk3/resources/mana/10.png diff --git a/cardvault/resources/mana/11.png b/cardvault/cv_gtk3/resources/mana/11.png similarity index 100% rename from cardvault/resources/mana/11.png rename to cardvault/cv_gtk3/resources/mana/11.png diff --git a/cardvault/resources/mana/12.png b/cardvault/cv_gtk3/resources/mana/12.png similarity index 100% rename from cardvault/resources/mana/12.png rename to cardvault/cv_gtk3/resources/mana/12.png diff --git a/cardvault/resources/mana/13.png b/cardvault/cv_gtk3/resources/mana/13.png similarity index 100% rename from cardvault/resources/mana/13.png rename to cardvault/cv_gtk3/resources/mana/13.png diff --git a/cardvault/resources/mana/14.png b/cardvault/cv_gtk3/resources/mana/14.png similarity index 100% rename from cardvault/resources/mana/14.png rename to cardvault/cv_gtk3/resources/mana/14.png diff --git a/cardvault/resources/mana/15.png b/cardvault/cv_gtk3/resources/mana/15.png similarity index 100% rename from cardvault/resources/mana/15.png rename to cardvault/cv_gtk3/resources/mana/15.png diff --git a/cardvault/resources/mana/16.png b/cardvault/cv_gtk3/resources/mana/16.png similarity index 100% rename from cardvault/resources/mana/16.png rename to cardvault/cv_gtk3/resources/mana/16.png diff --git a/cardvault/resources/mana/17.png b/cardvault/cv_gtk3/resources/mana/17.png similarity index 100% rename from cardvault/resources/mana/17.png rename to cardvault/cv_gtk3/resources/mana/17.png diff --git a/cardvault/resources/mana/18.png b/cardvault/cv_gtk3/resources/mana/18.png similarity index 100% rename from cardvault/resources/mana/18.png rename to cardvault/cv_gtk3/resources/mana/18.png diff --git a/cardvault/resources/mana/19.png b/cardvault/cv_gtk3/resources/mana/19.png similarity index 100% rename from cardvault/resources/mana/19.png rename to cardvault/cv_gtk3/resources/mana/19.png diff --git a/cardvault/resources/mana/2.png b/cardvault/cv_gtk3/resources/mana/2.png similarity index 100% rename from cardvault/resources/mana/2.png rename to cardvault/cv_gtk3/resources/mana/2.png diff --git a/cardvault/resources/mana/20.png b/cardvault/cv_gtk3/resources/mana/20.png similarity index 100% rename from cardvault/resources/mana/20.png rename to cardvault/cv_gtk3/resources/mana/20.png diff --git a/cardvault/resources/mana/2b.png b/cardvault/cv_gtk3/resources/mana/2b.png similarity index 100% rename from cardvault/resources/mana/2b.png rename to cardvault/cv_gtk3/resources/mana/2b.png diff --git a/cardvault/resources/mana/2g.png b/cardvault/cv_gtk3/resources/mana/2g.png similarity index 100% rename from cardvault/resources/mana/2g.png rename to cardvault/cv_gtk3/resources/mana/2g.png diff --git a/cardvault/resources/mana/2r.png b/cardvault/cv_gtk3/resources/mana/2r.png similarity index 100% rename from cardvault/resources/mana/2r.png rename to cardvault/cv_gtk3/resources/mana/2r.png diff --git a/cardvault/resources/mana/2u.png b/cardvault/cv_gtk3/resources/mana/2u.png similarity index 100% rename from cardvault/resources/mana/2u.png rename to cardvault/cv_gtk3/resources/mana/2u.png diff --git a/cardvault/resources/mana/2w.png b/cardvault/cv_gtk3/resources/mana/2w.png similarity index 100% rename from cardvault/resources/mana/2w.png rename to cardvault/cv_gtk3/resources/mana/2w.png diff --git a/cardvault/resources/mana/3.png b/cardvault/cv_gtk3/resources/mana/3.png similarity index 100% rename from cardvault/resources/mana/3.png rename to cardvault/cv_gtk3/resources/mana/3.png diff --git a/cardvault/resources/mana/4.png b/cardvault/cv_gtk3/resources/mana/4.png similarity index 100% rename from cardvault/resources/mana/4.png rename to cardvault/cv_gtk3/resources/mana/4.png diff --git a/cardvault/resources/mana/5.png b/cardvault/cv_gtk3/resources/mana/5.png similarity index 100% rename from cardvault/resources/mana/5.png rename to cardvault/cv_gtk3/resources/mana/5.png diff --git a/cardvault/resources/mana/6.png b/cardvault/cv_gtk3/resources/mana/6.png similarity index 100% rename from cardvault/resources/mana/6.png rename to cardvault/cv_gtk3/resources/mana/6.png diff --git a/cardvault/resources/mana/7.png b/cardvault/cv_gtk3/resources/mana/7.png similarity index 100% rename from cardvault/resources/mana/7.png rename to cardvault/cv_gtk3/resources/mana/7.png diff --git a/cardvault/resources/mana/8.png b/cardvault/cv_gtk3/resources/mana/8.png similarity index 100% rename from cardvault/resources/mana/8.png rename to cardvault/cv_gtk3/resources/mana/8.png diff --git a/cardvault/resources/mana/9.png b/cardvault/cv_gtk3/resources/mana/9.png similarity index 100% rename from cardvault/resources/mana/9.png rename to cardvault/cv_gtk3/resources/mana/9.png diff --git a/cardvault/resources/mana/B-G.png b/cardvault/cv_gtk3/resources/mana/B-G.png similarity index 100% rename from cardvault/resources/mana/B-G.png rename to cardvault/cv_gtk3/resources/mana/B-G.png diff --git a/cardvault/resources/mana/B-P.png b/cardvault/cv_gtk3/resources/mana/B-P.png similarity index 100% rename from cardvault/resources/mana/B-P.png rename to cardvault/cv_gtk3/resources/mana/B-P.png diff --git a/cardvault/resources/mana/B-R.png b/cardvault/cv_gtk3/resources/mana/B-R.png similarity index 100% rename from cardvault/resources/mana/B-R.png rename to cardvault/cv_gtk3/resources/mana/B-R.png diff --git a/cardvault/resources/mana/B.png b/cardvault/cv_gtk3/resources/mana/B.png similarity index 100% rename from cardvault/resources/mana/B.png rename to cardvault/cv_gtk3/resources/mana/B.png diff --git a/cardvault/resources/mana/B_alt.png b/cardvault/cv_gtk3/resources/mana/B_alt.png similarity index 100% rename from cardvault/resources/mana/B_alt.png rename to cardvault/cv_gtk3/resources/mana/B_alt.png diff --git a/cardvault/resources/mana/C.png b/cardvault/cv_gtk3/resources/mana/C.png similarity index 100% rename from cardvault/resources/mana/C.png rename to cardvault/cv_gtk3/resources/mana/C.png diff --git a/cardvault/resources/mana/C_alt.png b/cardvault/cv_gtk3/resources/mana/C_alt.png similarity index 100% rename from cardvault/resources/mana/C_alt.png rename to cardvault/cv_gtk3/resources/mana/C_alt.png diff --git a/cardvault/resources/mana/G-P.png b/cardvault/cv_gtk3/resources/mana/G-P.png similarity index 100% rename from cardvault/resources/mana/G-P.png rename to cardvault/cv_gtk3/resources/mana/G-P.png diff --git a/cardvault/resources/mana/G-U.png b/cardvault/cv_gtk3/resources/mana/G-U.png similarity index 100% rename from cardvault/resources/mana/G-U.png rename to cardvault/cv_gtk3/resources/mana/G-U.png diff --git a/cardvault/resources/mana/G-W.png b/cardvault/cv_gtk3/resources/mana/G-W.png similarity index 100% rename from cardvault/resources/mana/G-W.png rename to cardvault/cv_gtk3/resources/mana/G-W.png diff --git a/cardvault/resources/mana/G.png b/cardvault/cv_gtk3/resources/mana/G.png similarity index 100% rename from cardvault/resources/mana/G.png rename to cardvault/cv_gtk3/resources/mana/G.png diff --git a/cardvault/resources/mana/G_alt.png b/cardvault/cv_gtk3/resources/mana/G_alt.png similarity index 100% rename from cardvault/resources/mana/G_alt.png rename to cardvault/cv_gtk3/resources/mana/G_alt.png diff --git a/cardvault/resources/mana/R-G.png b/cardvault/cv_gtk3/resources/mana/R-G.png similarity index 100% rename from cardvault/resources/mana/R-G.png rename to cardvault/cv_gtk3/resources/mana/R-G.png diff --git a/cardvault/resources/mana/R-P.png b/cardvault/cv_gtk3/resources/mana/R-P.png similarity index 100% rename from cardvault/resources/mana/R-P.png rename to cardvault/cv_gtk3/resources/mana/R-P.png diff --git a/cardvault/resources/mana/R-W.png b/cardvault/cv_gtk3/resources/mana/R-W.png similarity index 100% rename from cardvault/resources/mana/R-W.png rename to cardvault/cv_gtk3/resources/mana/R-W.png diff --git a/cardvault/resources/mana/R.png b/cardvault/cv_gtk3/resources/mana/R.png similarity index 100% rename from cardvault/resources/mana/R.png rename to cardvault/cv_gtk3/resources/mana/R.png diff --git a/cardvault/resources/mana/R_alt.png b/cardvault/cv_gtk3/resources/mana/R_alt.png similarity index 100% rename from cardvault/resources/mana/R_alt.png rename to cardvault/cv_gtk3/resources/mana/R_alt.png diff --git a/cardvault/resources/mana/S.png b/cardvault/cv_gtk3/resources/mana/S.png similarity index 100% rename from cardvault/resources/mana/S.png rename to cardvault/cv_gtk3/resources/mana/S.png diff --git a/cardvault/resources/mana/T.png b/cardvault/cv_gtk3/resources/mana/T.png similarity index 100% rename from cardvault/resources/mana/T.png rename to cardvault/cv_gtk3/resources/mana/T.png diff --git a/cardvault/resources/mana/U-B.png b/cardvault/cv_gtk3/resources/mana/U-B.png similarity index 100% rename from cardvault/resources/mana/U-B.png rename to cardvault/cv_gtk3/resources/mana/U-B.png diff --git a/cardvault/resources/mana/U-P.png b/cardvault/cv_gtk3/resources/mana/U-P.png similarity index 100% rename from cardvault/resources/mana/U-P.png rename to cardvault/cv_gtk3/resources/mana/U-P.png diff --git a/cardvault/resources/mana/U-R.png b/cardvault/cv_gtk3/resources/mana/U-R.png similarity index 100% rename from cardvault/resources/mana/U-R.png rename to cardvault/cv_gtk3/resources/mana/U-R.png diff --git a/cardvault/resources/mana/U.png b/cardvault/cv_gtk3/resources/mana/U.png similarity index 100% rename from cardvault/resources/mana/U.png rename to cardvault/cv_gtk3/resources/mana/U.png diff --git a/cardvault/resources/mana/U_alt.png b/cardvault/cv_gtk3/resources/mana/U_alt.png similarity index 100% rename from cardvault/resources/mana/U_alt.png rename to cardvault/cv_gtk3/resources/mana/U_alt.png diff --git a/cardvault/resources/mana/W-B.png b/cardvault/cv_gtk3/resources/mana/W-B.png similarity index 100% rename from cardvault/resources/mana/W-B.png rename to cardvault/cv_gtk3/resources/mana/W-B.png diff --git a/cardvault/resources/mana/W-P.png b/cardvault/cv_gtk3/resources/mana/W-P.png similarity index 100% rename from cardvault/resources/mana/W-P.png rename to cardvault/cv_gtk3/resources/mana/W-P.png diff --git a/cardvault/resources/mana/W-U.png b/cardvault/cv_gtk3/resources/mana/W-U.png similarity index 100% rename from cardvault/resources/mana/W-U.png rename to cardvault/cv_gtk3/resources/mana/W-U.png diff --git a/cardvault/resources/mana/W.png b/cardvault/cv_gtk3/resources/mana/W.png similarity index 100% rename from cardvault/resources/mana/W.png rename to cardvault/cv_gtk3/resources/mana/W.png diff --git a/cardvault/resources/mana/W_alt.png b/cardvault/cv_gtk3/resources/mana/W_alt.png similarity index 100% rename from cardvault/resources/mana/W_alt.png rename to cardvault/cv_gtk3/resources/mana/W_alt.png diff --git a/cardvault/resources/mana/X.png b/cardvault/cv_gtk3/resources/mana/X.png similarity index 100% rename from cardvault/resources/mana/X.png rename to cardvault/cv_gtk3/resources/mana/X.png diff --git a/cardvault/resources/mana/Y.png b/cardvault/cv_gtk3/resources/mana/Y.png similarity index 100% rename from cardvault/resources/mana/Y.png rename to cardvault/cv_gtk3/resources/mana/Y.png diff --git a/cardvault/resources/mana/Z.png b/cardvault/cv_gtk3/resources/mana/Z.png similarity index 100% rename from cardvault/resources/mana/Z.png rename to cardvault/cv_gtk3/resources/mana/Z.png diff --git a/cardvault/resources/mana/flip.png b/cardvault/cv_gtk3/resources/mana/flip.png similarity index 100% rename from cardvault/resources/mana/flip.png rename to cardvault/cv_gtk3/resources/mana/flip.png diff --git a/cardvault/resources/mana/half.png b/cardvault/cv_gtk3/resources/mana/half.png similarity index 100% rename from cardvault/resources/mana/half.png rename to cardvault/cv_gtk3/resources/mana/half.png diff --git a/cardvault/resources/mana/infinite.png b/cardvault/cv_gtk3/resources/mana/infinite.png similarity index 100% rename from cardvault/resources/mana/infinite.png rename to cardvault/cv_gtk3/resources/mana/infinite.png diff --git a/cardvault/resources/mana/tap_old.png b/cardvault/cv_gtk3/resources/mana/tap_old.png similarity index 100% rename from cardvault/resources/mana/tap_old.png rename to cardvault/cv_gtk3/resources/mana/tap_old.png diff --git a/cardvault/resources/mana/untap.png b/cardvault/cv_gtk3/resources/mana/untap.png similarity index 100% rename from cardvault/resources/mana/untap.png rename to cardvault/cv_gtk3/resources/mana/untap.png diff --git a/cv_gtk3/setting.py b/cardvault/cv_gtk3/setting.py similarity index 100% rename from cv_gtk3/setting.py rename to cardvault/cv_gtk3/setting.py diff --git a/cardvault/cv_gtk3/signal_handlers/__init__.py b/cardvault/cv_gtk3/signal_handlers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/cv_gtk3/signal_handlers/handlers.py b/cardvault/cv_gtk3/signal_handlers/handlers.py similarity index 100% rename from cv_gtk3/signal_handlers/handlers.py rename to cardvault/cv_gtk3/signal_handlers/handlers.py diff --git a/cv_gtk3/signal_handlers/menu_bar.py b/cardvault/cv_gtk3/signal_handlers/menu_bar.py similarity index 100% rename from cv_gtk3/signal_handlers/menu_bar.py rename to cardvault/cv_gtk3/signal_handlers/menu_bar.py diff --git a/cv_gtk3/signal_handlers/search.py b/cardvault/cv_gtk3/signal_handlers/search.py similarity index 90% rename from cv_gtk3/signal_handlers/search.py rename to cardvault/cv_gtk3/signal_handlers/search.py index f052abc..88788e1 100644 --- a/cv_gtk3/signal_handlers/search.py +++ b/cardvault/cv_gtk3/signal_handlers/search.py @@ -1,14 +1,12 @@ import os from cv_gtk3.card_view import CardView -from cv_gtk3.setting import GUISettings - -from cv_gtk3.gtkui import CardvaultGTK +from cv_gtk3.gtk_util import GTKUtilities class SearchPageHandlers: """ Class for handling Signals from the search page """ - def __init__(self, app: 'CardvaultGTK'): + def __init__(self, app): """ Constructor :param app: Reference to an CardvaultGTK object """ @@ -16,7 +14,7 @@ class SearchPageHandlers: # Build the card view overlay = self.app.ui.get_object("searchResults") - self.card_list = CardView(ui_file=os.path.join(GUISettings.glade_file_path, 'cardtree.glade'), filtered=False) + self.card_list = CardView(filtered=False) self.card_list.set_name("resultsScroller") # TODO Context menu for card view # card_list.tree.connect("row-activated", self.on_search_card_selected) diff --git a/cardvault/resources/cardvault.desktop b/cardvault/resources/cardvault.desktop deleted file mode 100644 index 3668438..0000000 --- a/cardvault/resources/cardvault.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Version=0.5 -Type=Application -Name=Card Vault -Comment=Organize and plan your MTG card collection -TryExec=cardvault -Exec=cardvault -Icon=cardvault diff --git a/cardvault/resources/cardvault.png b/cardvault/resources/cardvault.png deleted file mode 100644 index e3f5f7001dad6726920fbb141b263b3e479c3e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18393 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 Wd8gpEfG^ List[str]: all_ids = [] for cards in self.wants.values(): - next_ids = [card.multiverse_id for card in cards] + next_ids = [card['multiverse_id'] for card in cards] all_ids = list(set(all_ids) | set(next_ids)) return all_ids @@ -442,10 +439,7 @@ class Application: def get_all_sets(self) -> dict: if not self.is_online(): - l = self.db.set_get_all() - out = {} - for s in l: - out[s.code] = s + out = {s['code']: s for s in self.db.set_get_all()} else: out = util.load_sets(util.get_root_filename('sets')) return out diff --git a/cardvault/cardlist.py b/legacy/cardlist.py similarity index 73% rename from cardvault/cardlist.py rename to legacy/cardlist.py index 794d3ed..9a74af9 100644 --- a/cardvault/cardlist.py +++ b/legacy/cardlist.py @@ -6,7 +6,6 @@ from cardvault import application from gi.repository import Gtk, GdkPixbuf, Gdk from typing import Dict, Type -from mtgsdk import Card import time gi.require_version('Gtk', '3.0') @@ -14,7 +13,7 @@ gi.require_version('Gdk', '3.0') class CardList(Gtk.ScrolledWindow): - def __init__(self, filtered, app: 'application.Application', row_colors: Dict[str, str]): + def __init__(self, filtered, app, row_colors: Dict[str, str]): Gtk.ScrolledWindow.__init__(self) self.set_hexpand(True) self.set_vexpand(True) @@ -49,7 +48,7 @@ class CardList(Gtk.ScrolledWindow): output[card_id] = card return output - def update(self, library: Dict[str, Type[Card]]): + def update(self, library: Dict[str, dict]): self.store.clear() if library is None: return @@ -63,22 +62,24 @@ class CardList(Gtk.ScrolledWindow): all_wants = self.app.get_wanted_card_ids() for card in library.values(): - if card.multiverse_id is not None: + if card['multiverse_id'] is not None: color = self.get_row_color(card, self.app.library, all_wants, self.row_colors) - mana_cost = None if card.types.__contains__("Land") else self.app.get_mana_icons(card.mana_cost) - item = [card.multiverse_id, - card.name, - " ".join(card.supertypes if card.supertypes else ""), - " ".join(card.types), - card.rarity, - card.power, - card.toughness, - ", ".join(card.printings), + mana_cost = None + if not card.get('types').__contains__("Land"): + mana_cost = self.app.get_mana_icons(card.get('mana_cost')) + item = [card['multiverse_id'], + card['name'], + " ".join(card.get('supertypes') or ""), + " ".join(card.get('types') or ""), + card.get('rarity'), + card.get('power'), + card.get('toughness'), + ", ".join(card.get('printings') or ""), mana_cost, - card.cmc, - card.set_name, + card.get('cmc'), + card.get('set_name'), color, - card.original_text] + card.get('original_text')] self.store.append(item) end = time.time() util.log("Time to build Table: " + str(round(end - start, 3)) + "s", util.LogLevel.Info) @@ -103,9 +104,9 @@ class CardList(Gtk.ScrolledWindow): @staticmethod def get_row_color(card, lib: dict, wants: dict, colors: dict) -> str: - if lib.__contains__(card.multiverse_id): + if lib.__contains__(card.get('multiverse_id')): return colors["owned"] - elif wants.__contains__(card.multiverse_id): + elif wants.__contains__(card.get('multiverse_id')): return colors["wanted"] else: return colors["unowned"] diff --git a/cardvault/database.py b/legacy/database.py similarity index 100% rename from cardvault/database.py rename to legacy/database.py diff --git a/cv_gtk3/gui/cardtree.glade b/legacy/gui/cardtree.glade similarity index 100% rename from cv_gtk3/gui/cardtree.glade rename to legacy/gui/cardtree.glade diff --git a/cv_gtk3/gui/detailswindow.glade b/legacy/gui/detailswindow.glade similarity index 100% rename from cv_gtk3/gui/detailswindow.glade rename to legacy/gui/detailswindow.glade diff --git a/cv_gtk3/gui/dialogs.glade b/legacy/gui/dialogs.glade similarity index 100% rename from cv_gtk3/gui/dialogs.glade rename to legacy/gui/dialogs.glade diff --git a/cv_gtk3/gui/library.glade b/legacy/gui/library.glade similarity index 100% rename from cv_gtk3/gui/library.glade rename to legacy/gui/library.glade diff --git a/cardvault/gui/mainwindow.glade b/legacy/gui/mainwindow.glade similarity index 100% rename from cardvault/gui/mainwindow.glade rename to legacy/gui/mainwindow.glade diff --git a/cv_gtk3/gui/overlays.glade b/legacy/gui/overlays.glade similarity index 100% rename from cv_gtk3/gui/overlays.glade rename to legacy/gui/overlays.glade diff --git a/cardvault/gui/search.glade b/legacy/gui/search.glade similarity index 100% rename from cardvault/gui/search.glade rename to legacy/gui/search.glade diff --git a/cv_gtk3/gui/wants.glade b/legacy/gui/wants.glade similarity index 100% rename from cv_gtk3/gui/wants.glade rename to legacy/gui/wants.glade diff --git a/cardvault/handlers.py b/legacy/handlers.py similarity index 98% rename from cardvault/handlers.py rename to legacy/handlers.py index 8ffe612..e77a6b1 100644 --- a/cardvault/handlers.py +++ b/legacy/handlers.py @@ -1,7 +1,7 @@ -import gi +import math import sys -import math +import gi gi.require_version('Gtk', '3.0') import time, datetime @@ -10,11 +10,9 @@ import threading from gi.repository import Gtk, GObject from cardvault import util, application -from mtgsdk import Card, MtgException - -from cardvault.search import SearchHandlers -from cardvault.library import LibraryHandlers -from cardvault.wants import WantsHandlers +from legacy.search import SearchHandlers +from legacy.library import LibraryHandlers +from legacy.wants import WantsHandlers class Handlers(SearchHandlers, LibraryHandlers, WantsHandlers): @@ -203,7 +201,7 @@ class Handlers(SearchHandlers, LibraryHandlers, WantsHandlers): self.cancel_token = False util.log("Download thread ended", util.LogLevel.Info) - def download_failed(self, err: MtgException): + def download_failed(self, err): # Delete Dialog self.app.ui.get_object("loadDataDialog").hide() self.app.push_status("Download canceled") diff --git a/cardvault/library.py b/legacy/library.py similarity index 100% rename from cardvault/library.py rename to legacy/library.py diff --git a/cv_gtk3/resources/images/demo.jpg b/legacy/resources/images/demo.jpg similarity index 100% rename from cv_gtk3/resources/images/demo.jpg rename to legacy/resources/images/demo.jpg diff --git a/cv_gtk3/resources/images/dummy.jpg b/legacy/resources/images/dummy.jpg similarity index 100% rename from cv_gtk3/resources/images/dummy.jpg rename to legacy/resources/images/dummy.jpg diff --git a/cv_gtk3/resources/images/dummy_315x450.png b/legacy/resources/images/dummy_315x450.png similarity index 100% rename from cv_gtk3/resources/images/dummy_315x450.png rename to legacy/resources/images/dummy_315x450.png diff --git a/cv_gtk3/resources/mana/0.png b/legacy/resources/mana/0.png similarity index 100% rename from cv_gtk3/resources/mana/0.png rename to legacy/resources/mana/0.png diff --git a/cv_gtk3/resources/mana/1.png b/legacy/resources/mana/1.png similarity index 100% rename from cv_gtk3/resources/mana/1.png rename to legacy/resources/mana/1.png diff --git a/cv_gtk3/resources/mana/10.png b/legacy/resources/mana/10.png similarity index 100% rename from cv_gtk3/resources/mana/10.png rename to legacy/resources/mana/10.png diff --git a/cv_gtk3/resources/mana/11.png b/legacy/resources/mana/11.png similarity index 100% rename from cv_gtk3/resources/mana/11.png rename to legacy/resources/mana/11.png diff --git a/cv_gtk3/resources/mana/12.png b/legacy/resources/mana/12.png similarity index 100% rename from cv_gtk3/resources/mana/12.png rename to legacy/resources/mana/12.png diff --git a/cv_gtk3/resources/mana/13.png b/legacy/resources/mana/13.png similarity index 100% rename from cv_gtk3/resources/mana/13.png rename to legacy/resources/mana/13.png diff --git a/cv_gtk3/resources/mana/14.png b/legacy/resources/mana/14.png similarity index 100% rename from cv_gtk3/resources/mana/14.png rename to legacy/resources/mana/14.png diff --git a/cv_gtk3/resources/mana/15.png b/legacy/resources/mana/15.png similarity index 100% rename from cv_gtk3/resources/mana/15.png rename to legacy/resources/mana/15.png diff --git a/cv_gtk3/resources/mana/16.png b/legacy/resources/mana/16.png similarity index 100% rename from cv_gtk3/resources/mana/16.png rename to legacy/resources/mana/16.png diff --git a/cv_gtk3/resources/mana/17.png b/legacy/resources/mana/17.png similarity index 100% rename from cv_gtk3/resources/mana/17.png rename to legacy/resources/mana/17.png diff --git a/cv_gtk3/resources/mana/18.png b/legacy/resources/mana/18.png similarity index 100% rename from cv_gtk3/resources/mana/18.png rename to legacy/resources/mana/18.png diff --git a/cv_gtk3/resources/mana/19.png b/legacy/resources/mana/19.png similarity index 100% rename from cv_gtk3/resources/mana/19.png rename to legacy/resources/mana/19.png diff --git a/cv_gtk3/resources/mana/2.png b/legacy/resources/mana/2.png similarity index 100% rename from cv_gtk3/resources/mana/2.png rename to legacy/resources/mana/2.png diff --git a/cv_gtk3/resources/mana/20.png b/legacy/resources/mana/20.png similarity index 100% rename from cv_gtk3/resources/mana/20.png rename to legacy/resources/mana/20.png diff --git a/cv_gtk3/resources/mana/2b.png b/legacy/resources/mana/2b.png similarity index 100% rename from cv_gtk3/resources/mana/2b.png rename to legacy/resources/mana/2b.png diff --git a/cv_gtk3/resources/mana/2g.png b/legacy/resources/mana/2g.png similarity index 100% rename from cv_gtk3/resources/mana/2g.png rename to legacy/resources/mana/2g.png diff --git a/cv_gtk3/resources/mana/2r.png b/legacy/resources/mana/2r.png similarity index 100% rename from cv_gtk3/resources/mana/2r.png rename to legacy/resources/mana/2r.png diff --git a/cv_gtk3/resources/mana/2u.png b/legacy/resources/mana/2u.png similarity index 100% rename from cv_gtk3/resources/mana/2u.png rename to legacy/resources/mana/2u.png diff --git a/cv_gtk3/resources/mana/2w.png b/legacy/resources/mana/2w.png similarity index 100% rename from cv_gtk3/resources/mana/2w.png rename to legacy/resources/mana/2w.png diff --git a/cv_gtk3/resources/mana/3.png b/legacy/resources/mana/3.png similarity index 100% rename from cv_gtk3/resources/mana/3.png rename to legacy/resources/mana/3.png diff --git a/cv_gtk3/resources/mana/4.png b/legacy/resources/mana/4.png similarity index 100% rename from cv_gtk3/resources/mana/4.png rename to legacy/resources/mana/4.png diff --git a/cv_gtk3/resources/mana/5.png b/legacy/resources/mana/5.png similarity index 100% rename from cv_gtk3/resources/mana/5.png rename to legacy/resources/mana/5.png diff --git a/cv_gtk3/resources/mana/6.png b/legacy/resources/mana/6.png similarity index 100% rename from cv_gtk3/resources/mana/6.png rename to legacy/resources/mana/6.png diff --git a/cv_gtk3/resources/mana/7.png b/legacy/resources/mana/7.png similarity index 100% rename from cv_gtk3/resources/mana/7.png rename to legacy/resources/mana/7.png diff --git a/cv_gtk3/resources/mana/8.png b/legacy/resources/mana/8.png similarity index 100% rename from cv_gtk3/resources/mana/8.png rename to legacy/resources/mana/8.png diff --git a/cv_gtk3/resources/mana/9.png b/legacy/resources/mana/9.png similarity index 100% rename from cv_gtk3/resources/mana/9.png rename to legacy/resources/mana/9.png diff --git a/cv_gtk3/resources/mana/B-G.png b/legacy/resources/mana/B-G.png similarity index 100% rename from cv_gtk3/resources/mana/B-G.png rename to legacy/resources/mana/B-G.png diff --git a/cv_gtk3/resources/mana/B-P.png b/legacy/resources/mana/B-P.png similarity index 100% rename from cv_gtk3/resources/mana/B-P.png rename to legacy/resources/mana/B-P.png diff --git a/cv_gtk3/resources/mana/B-R.png b/legacy/resources/mana/B-R.png similarity index 100% rename from cv_gtk3/resources/mana/B-R.png rename to legacy/resources/mana/B-R.png diff --git a/cv_gtk3/resources/mana/B.png b/legacy/resources/mana/B.png similarity index 100% rename from cv_gtk3/resources/mana/B.png rename to legacy/resources/mana/B.png diff --git a/cv_gtk3/resources/mana/B_alt.png b/legacy/resources/mana/B_alt.png similarity index 100% rename from cv_gtk3/resources/mana/B_alt.png rename to legacy/resources/mana/B_alt.png diff --git a/cv_gtk3/resources/mana/C.png b/legacy/resources/mana/C.png similarity index 100% rename from cv_gtk3/resources/mana/C.png rename to legacy/resources/mana/C.png diff --git a/cv_gtk3/resources/mana/C_alt.png b/legacy/resources/mana/C_alt.png similarity index 100% rename from cv_gtk3/resources/mana/C_alt.png rename to legacy/resources/mana/C_alt.png diff --git a/cv_gtk3/resources/mana/G-P.png b/legacy/resources/mana/G-P.png similarity index 100% rename from cv_gtk3/resources/mana/G-P.png rename to legacy/resources/mana/G-P.png diff --git a/cv_gtk3/resources/mana/G-U.png b/legacy/resources/mana/G-U.png similarity index 100% rename from cv_gtk3/resources/mana/G-U.png rename to legacy/resources/mana/G-U.png diff --git a/cv_gtk3/resources/mana/G-W.png b/legacy/resources/mana/G-W.png similarity index 100% rename from cv_gtk3/resources/mana/G-W.png rename to legacy/resources/mana/G-W.png diff --git a/cv_gtk3/resources/mana/G.png b/legacy/resources/mana/G.png similarity index 100% rename from cv_gtk3/resources/mana/G.png rename to legacy/resources/mana/G.png diff --git a/cv_gtk3/resources/mana/G_alt.png b/legacy/resources/mana/G_alt.png similarity index 100% rename from cv_gtk3/resources/mana/G_alt.png rename to legacy/resources/mana/G_alt.png diff --git a/cv_gtk3/resources/mana/R-G.png b/legacy/resources/mana/R-G.png similarity index 100% rename from cv_gtk3/resources/mana/R-G.png rename to legacy/resources/mana/R-G.png diff --git a/cv_gtk3/resources/mana/R-P.png b/legacy/resources/mana/R-P.png similarity index 100% rename from cv_gtk3/resources/mana/R-P.png rename to legacy/resources/mana/R-P.png diff --git a/cv_gtk3/resources/mana/R-W.png b/legacy/resources/mana/R-W.png similarity index 100% rename from cv_gtk3/resources/mana/R-W.png rename to legacy/resources/mana/R-W.png diff --git a/cv_gtk3/resources/mana/R.png b/legacy/resources/mana/R.png similarity index 100% rename from cv_gtk3/resources/mana/R.png rename to legacy/resources/mana/R.png diff --git a/cv_gtk3/resources/mana/R_alt.png b/legacy/resources/mana/R_alt.png similarity index 100% rename from cv_gtk3/resources/mana/R_alt.png rename to legacy/resources/mana/R_alt.png diff --git a/cv_gtk3/resources/mana/S.png b/legacy/resources/mana/S.png similarity index 100% rename from cv_gtk3/resources/mana/S.png rename to legacy/resources/mana/S.png diff --git a/cv_gtk3/resources/mana/T.png b/legacy/resources/mana/T.png similarity index 100% rename from cv_gtk3/resources/mana/T.png rename to legacy/resources/mana/T.png diff --git a/cv_gtk3/resources/mana/U-B.png b/legacy/resources/mana/U-B.png similarity index 100% rename from cv_gtk3/resources/mana/U-B.png rename to legacy/resources/mana/U-B.png diff --git a/cv_gtk3/resources/mana/U-P.png b/legacy/resources/mana/U-P.png similarity index 100% rename from cv_gtk3/resources/mana/U-P.png rename to legacy/resources/mana/U-P.png diff --git a/cv_gtk3/resources/mana/U-R.png b/legacy/resources/mana/U-R.png similarity index 100% rename from cv_gtk3/resources/mana/U-R.png rename to legacy/resources/mana/U-R.png diff --git a/cv_gtk3/resources/mana/U.png b/legacy/resources/mana/U.png similarity index 100% rename from cv_gtk3/resources/mana/U.png rename to legacy/resources/mana/U.png diff --git a/cv_gtk3/resources/mana/U_alt.png b/legacy/resources/mana/U_alt.png similarity index 100% rename from cv_gtk3/resources/mana/U_alt.png rename to legacy/resources/mana/U_alt.png diff --git a/cv_gtk3/resources/mana/W-B.png b/legacy/resources/mana/W-B.png similarity index 100% rename from cv_gtk3/resources/mana/W-B.png rename to legacy/resources/mana/W-B.png diff --git a/cv_gtk3/resources/mana/W-P.png b/legacy/resources/mana/W-P.png similarity index 100% rename from cv_gtk3/resources/mana/W-P.png rename to legacy/resources/mana/W-P.png diff --git a/cv_gtk3/resources/mana/W-U.png b/legacy/resources/mana/W-U.png similarity index 100% rename from cv_gtk3/resources/mana/W-U.png rename to legacy/resources/mana/W-U.png diff --git a/cv_gtk3/resources/mana/W.png b/legacy/resources/mana/W.png similarity index 100% rename from cv_gtk3/resources/mana/W.png rename to legacy/resources/mana/W.png diff --git a/cv_gtk3/resources/mana/W_alt.png b/legacy/resources/mana/W_alt.png similarity index 100% rename from cv_gtk3/resources/mana/W_alt.png rename to legacy/resources/mana/W_alt.png diff --git a/cv_gtk3/resources/mana/X.png b/legacy/resources/mana/X.png similarity index 100% rename from cv_gtk3/resources/mana/X.png rename to legacy/resources/mana/X.png diff --git a/cv_gtk3/resources/mana/Y.png b/legacy/resources/mana/Y.png similarity index 100% rename from cv_gtk3/resources/mana/Y.png rename to legacy/resources/mana/Y.png diff --git a/cv_gtk3/resources/mana/Z.png b/legacy/resources/mana/Z.png similarity index 100% rename from cv_gtk3/resources/mana/Z.png rename to legacy/resources/mana/Z.png diff --git a/cv_gtk3/resources/mana/flip.png b/legacy/resources/mana/flip.png similarity index 100% rename from cv_gtk3/resources/mana/flip.png rename to legacy/resources/mana/flip.png diff --git a/cv_gtk3/resources/mana/half.png b/legacy/resources/mana/half.png similarity index 100% rename from cv_gtk3/resources/mana/half.png rename to legacy/resources/mana/half.png diff --git a/cv_gtk3/resources/mana/infinite.png b/legacy/resources/mana/infinite.png similarity index 100% rename from cv_gtk3/resources/mana/infinite.png rename to legacy/resources/mana/infinite.png diff --git a/cv_gtk3/resources/mana/tap_old.png b/legacy/resources/mana/tap_old.png similarity index 100% rename from cv_gtk3/resources/mana/tap_old.png rename to legacy/resources/mana/tap_old.png diff --git a/cv_gtk3/resources/mana/untap.png b/legacy/resources/mana/untap.png similarity index 100% rename from cv_gtk3/resources/mana/untap.png rename to legacy/resources/mana/untap.png diff --git a/cardvault/search.py b/legacy/search.py similarity index 97% rename from cardvault/search.py rename to legacy/search.py index 4830eb5..5d8eb17 100644 --- a/cardvault/search.py +++ b/legacy/search.py @@ -1,8 +1,10 @@ import time from urllib.error import URLError, HTTPError -from mtgsdk import Card from cardvault import application, cardlist, util +# Deprecated +from mtgsdk import Card + import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk @@ -189,8 +191,8 @@ class SearchHandlers: name = self.app.ui.get_object("setEntry").get_text() output["set"] = "" for mtgset in self.app.get_all_sets().values(): - if mtgset.name == name: - output["set"] = mtgset.code + if mtgset['name'] == name: + output["set"] = mtgset['code'] return output def search_cards(self, term: str, filters: dict) -> dict: @@ -220,6 +222,7 @@ class SearchHandlers: .where(rarity=filters["rarity"]) \ .where(pageSize=50) \ .where(page=1).all() + cards = [card.__dict__ for card in cards] end = time.time() util.log("Card info fetched in {}s".format(round(end - start, 3)), util.LogLevel.Info) except (URLError, HTTPError) as err: @@ -235,10 +238,7 @@ class SearchHandlers: return {} util.log("Found " + str(len(cards)) + " cards", util.LogLevel.Info) - output = {} - for card in cards: - output[card.multiverse_id] = card - return output + return {card['multiverse_id']: card for card in cards} # ---------------------------------Search Tree---------------------------------------------- @@ -312,8 +312,8 @@ class SearchHandlers: unique_names = [] # Reverse cardlist so we get the version with the most modern art for card in reversed(cards): - if card.name not in unique_names: - unique_names.append(card.name) + if card['name'] not in unique_names: + unique_names.append(card['name']) unique_cards.append(card) return unique_cards @@ -334,7 +334,7 @@ class SearchHandlers: """ Initialize model for set entry """ set_store = Gtk.ListStore(str, str) for mtgset in self.app.get_all_sets().values(): - set_store.append([mtgset.name, mtgset.code]) + set_store.append([mtgset.get('name'), mtgset.get('code')]) completer = Gtk.EntryCompletion() completer.set_model(set_store) completer.set_text_column(0) diff --git a/cardvault/util.py b/legacy/util.py similarity index 94% rename from cardvault/util.py rename to legacy/util.py index a3bac28..07d3510 100644 --- a/cardvault/util.py +++ b/legacy/util.py @@ -255,7 +255,7 @@ def net_load_set_list() -> dict: except MtgException as err: log(str(err), LogLevel.Error) return {} - return sets + return [set.__dict__ for set in sets] def load_sets(filename: str) -> dict: @@ -272,8 +272,8 @@ def load_sets(filename: str) -> dict: sets = pickle.load(open(filename, 'rb')) # Sort the loaded sets based on the sets name output = {} - for set in sorted(sets, key=lambda x: x.name): - output[set.code] = set + for set in sorted(sets, key=lambda x: x.get('name')): + output[set.get('code')] = set return output @@ -343,23 +343,23 @@ def load_dummy_image(size_x: int, size_y: int) -> GdkPixbuf: + '/resources/images/dummy.jpg', size_x, size_y) -def load_card_image(card: Card, size_x: int, size_y: int, cache: dict) -> GdkPixbuf: +def load_card_image(card: dict, size_x: int, size_y: int, cache: dict) -> GdkPixbuf: """ Retrieve an card image from cache or alternatively load from gatherer""" try: - image = cache[card.multiverse_id] + image = cache[card.get('multiverse_id')] except KeyError: - log("No local image for " + card.name + ". Loading from " + card.image_url, LogLevel.Info) + log("No local image for " + card.get('name') + ". Loading from " + card.get('image_url'), LogLevel.Info) filename, image = net_load_card_image(card, size_x, size_y) - cache[card.multiverse_id] = image + cache[card.get('multiverse_id')] = image return image -def net_load_card_image(card, size_x: int, size_y: int) -> (str, GdkPixbuf): - url = card.image_url +def net_load_card_image(card: dict, size_x: int, size_y: int) -> (str, GdkPixbuf): + url = card.get('image_url') if url is None: - log("No Image URL for " + card.name, LogLevel.Warning) + log("No Image URL for " + card.get('name'), LogLevel.Warning) return load_dummy_image(size_x, size_y) - filename = IMAGE_CACHE_PATH + str(card.multiverse_id) + ".png" + filename = IMAGE_CACHE_PATH + str(card.get('multiverse_id')) + ".png" request.urlretrieve(url, filename) return filename, GdkPixbuf.Pixbuf.new_from_file_at_size(filename, size_x, size_y) diff --git a/cardvault/wants.py b/legacy/wants.py similarity index 100% rename from cardvault/wants.py rename to legacy/wants.py diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 224f8b7..0000000 --- a/setup.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[install] -single-version-externally-managed=1 -record=install.txt \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100755 index 3ffdb81..0000000 --- a/setup.py +++ /dev/null @@ -1,41 +0,0 @@ -from setuptools import setup, find_packages -from cardvault import util - -try: - LONG_DESCRIPTION = open("README.md").read() -except IOError: - LONG_DESCRIPTION = __doc__ - - -setup( - name=util.APPLICATION_TITLE, - version=util.VERSION, - packages=find_packages(), - - package_data={'cardvault': ['resources/images/*', 'resources/mana/*', 'gui/*']}, - - data_files=[ - ('share/icons/hicolor/scalable/apps', ['cardvault/resources/cardvault.png']), - ('share/applications', ['cardvault/resources/cardvault.desktop'])], - - author='luxick', - author_email='cardvoult@luxick.de', - description='Managing MTG card libraries and decks', - long_description=LONG_DESCRIPTION, - url='https://github.com/luxick/cardvault', - keywords='card manager, gtk, MTG, Magic the Gathering', - license="MIT", - entry_points={ - 'gui_scripts': [ - 'cardvault = cardvault.application:main', - ] - }, - classifiers=[ - 'Development Status :: 3 - Alpha', - 'Intended Audience :: End Users/Desktop', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'License :: OSI Approved :: MIT License', - ], install_requires=['gi', 'pillow', 'six', 'mtgsdk', 'jsonpickle'] -)