From ca5bf6967720fb515a8f8894d6a0d6844830f3b7 Mon Sep 17 00:00:00 2001 From: Sarsoo Date: Sat, 10 Jul 2021 15:22:55 +0000 Subject: [PATCH] deploy: 90d1ce04d9a0995d06fb3e87df64f9767c6747c0 --- .doctrees/environment.pickle | Bin 98397 -> 99012 bytes .doctrees/src/MusicTools.Playlist.doctree | Bin 76632 -> 76632 bytes .doctrees/src/MusicTools.Tag.doctree | Bin 43702 -> 48397 bytes .doctrees/src/music.model.doctree | Bin 115623 -> 119137 bytes genindex.html | 8 +++++++ objects.inv | Bin 2797 -> 2816 bytes searchindex.js | 2 +- src/MusicTools.Admin.html | 6 ++++- src/MusicTools.Maths.html | 6 ++++- src/MusicTools.Playlist.html | 6 ++++- src/MusicTools.Settings.html | 6 ++++- src/MusicTools.Tag.html | 27 +++++++++++++++++++++- src/MusicTools.html | 6 ++++- src/music.api.html | 6 ++++- src/music.auth.html | 6 ++++- src/music.cloud.html | 6 ++++- src/music.db.html | 6 ++++- src/music.html | 6 ++++- src/music.model.html | 27 ++++++++++++++++++++-- src/music.tasks.html | 6 ++++- 20 files changed, 115 insertions(+), 15 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index b21f9ac7b752f620e684705d6cf60de33886c10e..d2049f798022e3f283e646563da08431b7abf3be 100644 GIT binary patch delta 16711 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 diff --git a/.doctrees/src/MusicTools.Playlist.doctree b/.doctrees/src/MusicTools.Playlist.doctree index aa27d429c8610ad0a5006d5aacb0288c4af83ddf..3d1274171611c887f186d2b51e07656a90125c6c 100644 GIT binary patch delta 43 wcmca{jpfEQmJRVgnT!oKC;m+0Vlpw9ocPmp`!8n3V_Zz8W?;^DKE^~D0IuE=ApigX delta 43 wcmca{jpfEQmJRVgnT(7!C;m+0Vlp})}xlx|DDTMdeANmQskPCHg-QbR3U zxo(>x-;Sr7t0#(g=w?-#LHj%|DvB)C|CPUrC-2&aHD%U)D!pv!A+d%!TOFc@zFWUoHt>{6YA%TJl%b#Gh z#qZXROJ)256*Vc%^wJdm;6`Bv9V#*0ovi&*w|A{8MxNuLO9pkk;FIwh(DCYp6CE#6 z!ALkFGV^Dkg5MY^Sd}Otm>_v{ti6_6TP})))cO1jI443Om!2lcn+iE=FE zk4#^B-Xk=!woRfAj~RU9k@E@jkb-$20?cAM*fE=CZcL8e1GwfT(Egfi>e|>AyDdSb zycM>mD#G+){iOsDW`pR3&B{~vv_$+^O){dV5MXMOI7OE>6^jos?H0dQ zQFJ7`DXqz7y$IW3utLAMX(IH4ZK-&E(w5C8E_crqCzMT~DhAZ3C@)6ztI>0FlyhJ! z_R!7myCp&kQ4v{S`#2&JRoD(DC~P5^of)Q61MRbg%r`MLWu8gF`T<~FAWL{o-*m(C zjB7cG7j;}$suAO=D_A~=z;&7lBwZ2xHbBcYDNwUIm&I)~DNtM4y1otHg+h}_p}Gwg zbyT;QhEY9?Nw@4nY~UyaI4XXs6i=ka0CN@25Uf9k^)OhW4OsajrYpp?wyDYlfIXm0 zFtGd7h=F}ojTl(?XJEV3ME9f^i3mgBA{z!bB3lLSC6fXdg2AtV%)KO5z93;+ei{mN=^HbGJBb zrtXwX>fco_{-d1S(w#tXJF;0+J2G3)j@$#CW_C9cxRK$3jdqPXR$Hq)%0 z_v8f&^GlqklY1OUd7a-uEB4$g|G?Aw@e*3X4wipG&<)x0&lYvQs1?ht2+jm8iZf?l z$%y_Glz88wIFtD5GqK~WiZij4dqD4rpJUx%Wy;7Dt2#iFtk}By-Ly2**tVfw^g0T@W(5liTN zd7t5ML}aFr^jg(6h2U+v-^x(hGeg%YzqfvUt&guO+ti#>RToP5TeOBT(9AZ)w*=czkFv&=MG1Ht zXH%3*w<*e{*>Gp8nTS#i`)qD-R{ET+D5GyZ74ImN1-1|$Wj==3?hx4SB#%02dRx5o zz$6&C0v^K{2_3t0UP(h``zC4>sLP8 z=yOhSyPVnCPEM*B?^B)Lr<-ecInAaz2WZ2cBiW`p2PievIo!v_+QuXQ z8LE?1*;FTi;7(FtMt0MRwJU9#aaUQkAls3t zOV8j3P&>zua{SY1Yxq%&Yq(azk7>9$YI*!f#SKHt;71ULy>^}-{UC(KJyR=1SQ=NN zh0fkPk4_(1pd7@!IbAqHr!6(Ssk<%9^vG2XRl{Wtt|8q#qOZ(9+BMMuO9dh-YKP&; zT5nTRK%0XXt<`brv!ezP&8wXb`tpYvRvtc!M~nXg{&KZ02c`E U9>;noarAI#a}EBxS}Jq?2d5KV!2kdN delta 2776 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 YFDTm2Ja7VQnG{Rfkm#cYC#gg8Kb@kO+yDRo delta 9021 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 tHZknPEoUG;L1a9o6>SnlMWIL{|nqUTPXkl diff --git a/genindex.html b/genindex.html index 4fc85b2..b4c6898 100644 --- a/genindex.html +++ b/genindex.html @@ -328,6 +328,8 @@
  • get_authed_spotify_network() (in module music.db.database)
  • get_playlist() (music.model.user.User method) +
  • +
  • get_playlists() (music.model.user.User method)
    • @@ -982,6 +986,8 @@
    • TagView.componentDidMount() (TagView method)
    • TagView.getTag() (TagView method) +
    • +
    • TagView.getUserInfo() (TagView method)
    • TagView.handleAdd() (TagView method)
    • @@ -996,6 +1002,8 @@
    • TagView.handleRemoveObj() (TagView method)
    • TagView.handleRun() (TagView method) +
    • +
    • TagView.handleView() (TagView method)
    • TagView.makeNetworkUpdate() (TagView method)
    • diff --git a/objects.inv b/objects.inv index 6a5ac7127153cb3ca023bc075ad966bf5b5aad17..ddef02af3e35f3bff566d1e53b81bae3f52b4a67 100644 GIT binary patch delta 2718 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 Y1(Lyq-Ncp5YkMz~3@+^c5360tCJFaWl>h($ delta 2699 zcmV;63Uu{=7VQ;~et)(W$M^aaoax<$ZSOL>ByKvHv2Q(g(k?j=2}y`Rf(1a^`u6t# zAovnV5f3jCOC zv$AFtuH+pl9#~V!^|ZHOe$)k$*ok9m>k)GP%6PF-jO((GrMC7P&LJ~f8et>xfB5yk zad8o8&&|Fh(ivr&d!eo$DY{T1cG~sy98*oaXm{U zg)86=`}eRv3V-5ORZ5V4rYt}I$w~1|;?gy{nqbp)s%ovghf6wruXG*V!U6?a+ureM z@hL-i0ZbS9R1}Y`hx8{r;R6Q0lH&l(mlMv%~A~RLxUU zd8tcu28SxaA)dFyo@>h2_F1t#)_0PWH`OOfl~)r^;eUQa*x=A6@_QuY*9WIiX(Zcy z@FHRR5a$NMFL2$rUTs@Tsi(J>c}{HddVkZGPPF}IFd(x1(kadkbm2j32n+VJ*RU3tFAiTsM@xqK1xM!Y2kpMV|gm@N1~v!PzhK zgjX(vcmB09Xy`a5nL4<`6iYmGQ=!BsJ$8sh^37N`bo--{{Nk);uTD|XhI6NpOMfL` zXP1z;u zYQaUyGE~=&iX2MUr6wH31DN4HjfD{z9c|TD);BpMOxD&ryOUR15owbJwPX+H+TUHJilFcJ_*7 zesZl2{8lqAm0N*v3obI#)G%}=*okAid}bVuiIUy&mI^pFc+C*897#rYrBW2jMhZ0v2Wp9b69`2RKe{ki0P|WLCjo5HCcEb?td(6 z()n^Z5yHuPTZ$cq&j7<$}e!vIFihy z>)f+?x#`;w`2TGP#1j8}K>vWrU4K@PT!ug>YYMN%7(k8)cj4O;K}5Dka6LnfJOxz? zkSIGIAxx8y48eRw9!hO$YKRu2!5~}E@{A8k8cd6jEn(KVG76Ky7`zumiJEI?h#y4^ z&QIZPT8GlBpB~DzK!jd00rtG#Q|w#->Wq+Q{Wu!3kSL=IT$@amS;{(UyE%>sXp7gZtWcUy z_@BsQWI_1o!Pj{k8)#Djb3xa1?VQ*(P0*$7@UulYrrJ&-yrg=#>Z@(MrK)k^ua|u& zz0!Ji=1%T2L~O-wHrb8==6?(WZY^1cx)mr**M}b+VNP1$0I?po_-mnMJjEOz!T+uK ztyQ^XXY7`5J+@wGB7JY6jm*8#YIF#o_qbgQ7_w)JGoUYG&5_*IUcQ21FwS78P{ZM? z{Q2~|uWHxov~@t4T?d&gQhR5s18=#TIZm5M=n3&=KX?oXw_|Xmzhr51b%x%3{tRcnRQuG#< z8u*ySgsh#*S7s-8u`W0B?2I`KXnTncESbHW?voMfj7)4!IfNfu$!6v?!8`4X0@_qQhyyY^>75fz&QusamJSz zu-1FWtbhsA)_^e^y+D_2&zh=0{1OYNF8uXg3Lq!5VC(nMqMB^4Rxe z0+lt5RRe=9<3Jb0`8zvhHxl%v8_~rOvU($yLKi7=P)xts%d$q*6m5J)nll@O*$_ zQLGkS^t%D!xDZ=f-Xgp`=2u%!-;w*2y4CrO?}y?j13U}VVO4}7bZ84>1P+3)G2u1i zA5bkJc)Vpn!DXpAQ>Us!t55^88=RXBrLp`RoTZ^X z24F_}b%CtmncLv-Pkd3=FD+t3o{^3k+!c4mR0=AIR~3wG)r;o=T;o^dzFM) zE_>HB%;8-BB<7Ak`PKQ9lx{y-wUWW{nK7@N^@uGe&?b2~;)+xSeoKTbK2o&DH2Ls* zVt=pd=aO&gV*z?d2<5Y|X@E(*&`pvI|1VSE^3XeFk@9o4SA5byj6hFDKpC-T3(Hg3KO_ zP5SS<$@#T;Wq-6S8C=*6Ps7X$+fy=${kEIL`*~GA6i5aab`w`JukF1|GPtn&KLr24 FVR9SrShxTH diff --git a/searchindex.js b/searchindex.js index d970ea0..29e6231 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","src/MusicTools","src/MusicTools.Admin","src/MusicTools.Maths","src/MusicTools.Playlist","src/MusicTools.Settings","src/MusicTools.Tag","src/admin","src/modules","src/music","src/music.api","src/music.auth","src/music.cloud","src/music.db","src/music.model","src/music.tasks"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst","src/MusicTools.rst","src/MusicTools.Admin.rst","src/MusicTools.Maths.rst","src/MusicTools.Playlist.rst","src/MusicTools.Settings.rst","src/MusicTools.Tag.rst","src/admin.rst","src/modules.rst","src/music.rst","src/music.api.rst","src/music.auth.rst","src/music.cloud.rst","src/music.db.rst","src/music.model.rst","src/music.tasks.rst"],objects:{"":{Admin:[2,0,1,""],AuthButton:[5,1,1,""],BarChart:[3,0,1,""],ChangePassword:[5,0,1,""],Count:[4,0,1,""],DeAuthButton:[5,1,1,""],Edit:[4,0,1,""],Functions:[2,0,1,""],LastFM:[5,0,1,""],Lock:[2,0,1,""],MusicTools:[1,0,1,""],NewPlaylist:[4,0,1,""],NewTag:[6,0,1,""],PieChart:[3,0,1,""],PlaylistCard:[4,0,1,""],PlaylistGrid:[4,0,1,""],Playlists:[4,0,1,""],PlaylistsView:[4,0,1,""],ReferenceEntry:[4,1,1,""],Row:[2,1,1,""],Settings:[5,0,1,""],SpotifyLink:[5,0,1,""],TagCard:[6,1,1,""],TagGrid:[6,1,1,""],TagList:[6,0,1,""],TagRouter:[6,0,1,""],TagView:[6,0,1,""],TaskType:[2,1,1,""],Tasks:[2,0,1,""],admin:[7,3,0,"-"],getPlaylistLink:[4,1,1,""],getTagLink:[6,1,1,""],music:[9,3,0,"-"]},"PlaylistRouter.View":{handleChange:[4,1,1,""]},"admin.Admin":{compile_frontend:[7,5,1,""],copy_main_file:[7,5,1,""],deploy_function:[7,5,1,""],do_app:[7,5,1,""],do_cron_functions:[7,5,1,""],do_docs:[7,5,1,""],do_exit:[7,5,1,""],do_main_group:[7,5,1,""],do_playlist:[7,5,1,""],do_playlist_cron:[7,5,1,""],do_playlist_stats_cron:[7,5,1,""],do_prepare_local_stage:[7,5,1,""],do_pydepend:[7,5,1,""],do_rename:[7,5,1,""],do_run:[7,5,1,""],do_sass:[7,5,1,""],do_set_project:[7,5,1,""],do_tag:[7,5,1,""],do_tags_cron:[7,5,1,""],do_test:[7,5,1,""],do_watchsass:[7,5,1,""],export_filtered_dependencies:[7,5,1,""],function_deploy:[7,5,1,""],intro:[7,6,1,""],locals:[7,6,1,""],prompt:[7,6,1,""]},"music.api":{admin:[10,3,0,"-"],api:[10,3,0,"-"],decorators:[10,3,0,"-"],fm:[10,3,0,"-"],player:[10,3,0,"-"],spotfm:[10,3,0,"-"],spotify:[10,3,0,"-"],tag:[10,3,0,"-"]},"music.api.admin":{get_tasks:[10,7,1,""]},"music.api.api":{all_playlists_route:[10,7,1,""],all_users_route:[10,7,1,""],change_password:[10,7,1,""],image:[10,7,1,""],playlist_get_delete_route:[10,7,1,""],playlist_post_put_route:[10,7,1,""],run_playlist:[10,7,1,""],run_playlist_task:[10,7,1,""],run_user:[10,7,1,""],run_user_task:[10,7,1,""],run_users:[10,7,1,""],user_route:[10,7,1,""]},"music.api.decorators":{admin_required:[10,7,1,""],check_dict:[10,7,1,""],cloud_task:[10,7,1,""],gae_cron:[10,7,1,""],is_basic_authed:[10,7,1,""],is_logged_in:[10,7,1,""],lastfm_username_required:[10,7,1,""],login_or_basic_auth:[10,7,1,""],login_required:[10,7,1,""],spotify_link_required:[10,7,1,""],validate_args:[10,7,1,""],validate_json:[10,7,1,""]},"music.api.fm":{daily_scrobbles:[10,7,1,""]},"music.api.player":{next_track:[10,7,1,""],play:[10,7,1,""],shuffle:[10,7,1,""],volume:[10,7,1,""]},"music.api.spotfm":{count:[10,7,1,""],playlist_refresh:[10,7,1,""],run_playlist_album_task:[10,7,1,""],run_playlist_artist_task:[10,7,1,""],run_playlist_track_task:[10,7,1,""],run_user:[10,7,1,""],run_user_task:[10,7,1,""],run_users:[10,7,1,""]},"music.api.spotify":{sort:[10,7,1,""]},"music.api.tag":{delete_tag:[10,7,1,""],get_tag:[10,7,1,""],post_tag:[10,7,1,""],put_tag:[10,7,1,""],run_tag_task:[10,7,1,""],tag_refresh:[10,7,1,""],tag_route:[10,7,1,""],tags:[10,7,1,""]},"music.auth":{auth:[11,3,0,"-"]},"music.auth.auth":{auth:[11,7,1,""],deauth:[11,7,1,""],login:[11,7,1,""],logout:[11,7,1,""],register:[11,7,1,""],token:[11,7,1,""]},"music.cloud":{"function":[12,3,0,"-"],offload_or_run_user_playlist:[12,7,1,""],queue_run_user_playlist:[12,7,1,""],tasks:[12,3,0,"-"]},"music.cloud.function":{run_user_playlist_function:[12,7,1,""],update_tag:[12,7,1,""]},"music.cloud.tasks":{refresh_all_user_playlist_stats:[12,7,1,""],refresh_playlist_task:[12,7,1,""],refresh_user_playlist_stats:[12,7,1,""],refresh_user_stats_task:[12,7,1,""],run_user_playlist_task:[12,7,1,""],update_all_user_playlists:[12,7,1,""],update_all_user_tags:[12,7,1,""],update_playlists:[12,7,1,""]},"music.db":{database:[13,3,0,"-"],part_generator:[13,3,0,"-"]},"music.db.database":{DatabaseUser:[13,4,1,""],get_authed_lastfm_network:[13,7,1,""],get_authed_spotify_network:[13,7,1,""],refresh_token_database_callback:[13,7,1,""]},"music.db.database.DatabaseUser":{user_id:[13,6,1,""]},"music.db.part_generator":{PartGenerator:[13,4,1,""]},"music.db.part_generator.PartGenerator":{get_recursive_parts:[13,5,1,""],process_reference_by_name:[13,5,1,""],process_reference_by_reference:[13,5,1,""],reset:[13,5,1,""]},"music.model":{config:[14,3,0,"-"],playlist:[14,3,0,"-"],tag:[14,3,0,"-"],user:[14,3,0,"-"]},"music.model.config":{Config:[14,4,1,""]},"music.model.config.Config":{Meta:[14,4,1,""],collection:[14,6,1,""],collection_name:[14,6,1,""],last_fm_client_id:[14,6,1,""],playlist_cloud_operating_mode:[14,6,1,""],secret_key:[14,6,1,""],spotify_client_id:[14,6,1,""],spotify_client_secret:[14,6,1,""]},"music.model.config.Config.Meta":{collection_name:[14,6,1,""]},"music.model.playlist":{Playlist:[14,4,1,""],Sort:[14,4,1,""]},"music.model.playlist.Playlist":{Meta:[14,4,1,""],add_last_month:[14,6,1,""],add_this_month:[14,6,1,""],chart_limit:[14,6,1,""],chart_range:[14,6,1,""],collection:[14,6,1,""],collection_name:[14,6,1,""],day_boundary:[14,6,1,""],description_overwrite:[14,6,1,""],description_suffix:[14,6,1,""],include_library_tracks:[14,6,1,""],include_recommendations:[14,6,1,""],last_updated:[14,6,1,""],lastfm_stat_album_count:[14,6,1,""],lastfm_stat_album_percent:[14,6,1,""],lastfm_stat_artist_count:[14,6,1,""],lastfm_stat_artist_percent:[14,6,1,""],lastfm_stat_count:[14,6,1,""],lastfm_stat_last_refresh:[14,6,1,""],lastfm_stat_percent:[14,6,1,""],mutable_keys:[14,6,1,""],name:[14,6,1,""],parts:[14,6,1,""],playlist_references:[14,6,1,""],recommendation_sample:[14,6,1,""],shuffle:[14,6,1,""],sort:[14,6,1,""],to_dict:[14,5,1,""],type:[14,6,1,""],uri:[14,6,1,""]},"music.model.playlist.Playlist.Meta":{collection_name:[14,6,1,""]},"music.model.playlist.Sort":{"default":[14,6,1,""],release_date:[14,6,1,""],shuffle:[14,6,1,""]},"music.model.tag":{Tag:[14,4,1,""]},"music.model.tag.Tag":{Meta:[14,4,1,""],albums:[14,6,1,""],artists:[14,6,1,""],collection:[14,6,1,""],collection_name:[14,6,1,""],count:[14,6,1,""],last_updated:[14,6,1,""],name:[14,6,1,""],proportion:[14,6,1,""],tag_id:[14,6,1,""],time_objects:[14,6,1,""],to_dict:[14,5,1,""],total_time:[14,6,1,""],total_time_ms:[14,6,1,""],total_user_scrobbles:[14,6,1,""],tracks:[14,6,1,""],username:[14,6,1,""]},"music.model.tag.Tag.Meta":{collection_name:[14,6,1,""]},"music.model.user":{User:[14,4,1,""]},"music.model.user.User":{Meta:[14,4,1,""],access_token:[14,6,1,""],check_password:[14,5,1,""],collection:[14,6,1,""],collection_name:[14,6,1,""],email:[14,6,1,""],get_playlist:[14,5,1,""],last_login:[14,6,1,""],last_refreshed:[14,6,1,""],lastfm_username:[14,6,1,""],locked:[14,6,1,""],password:[14,6,1,""],refresh_token:[14,6,1,""],spotify_linked:[14,6,1,""],to_dict:[14,5,1,""],token_expiry:[14,6,1,""],type:[14,6,1,""],username:[14,6,1,""],validated:[14,6,1,""]},"music.model.user.User.Meta":{collection_name:[14,6,1,""]},"music.music":{create_app:[9,7,1,""]},"music.tasks":{create_playlist:[15,3,0,"-"],refresh_lastfm_stats:[15,3,0,"-"],run_user_playlist:[15,3,0,"-"],update_tag:[15,3,0,"-"]},"music.tasks.create_playlist":{create_playlist:[15,7,1,""]},"music.tasks.refresh_lastfm_stats":{refresh_lastfm_album_stats:[15,7,1,""],refresh_lastfm_artist_stats:[15,7,1,""],refresh_lastfm_track_stats:[15,7,1,""]},"music.tasks.run_user_playlist":{run_user_playlist:[15,7,1,""]},"music.tasks.update_tag":{update_tag:[15,7,1,""]},Admin:{handleChange:[2,1,1,""]},BarChart:{componentDidMount:[3,1,1,""],componentDidUpdate:[3,1,1,""]},ChangePassword:{handleCurrentChange:[5,1,1,""],handleNew2Change:[5,1,1,""],handleNewChange:[5,1,1,""],handleSubmit:[5,1,1,""]},Count:{Count:[4,2,1,""],getUserInfo:[4,1,1,""],updateStats:[4,1,1,""]},Edit:{BlockGridItem:[4,1,1,""],Edit:[4,2,1,""],ListBlock:[4,1,1,""],componentDidMount:[4,1,1,""],getPlaylistInfo:[4,1,1,""],getPlaylists:[4,1,1,""],handleAddPart:[4,1,1,""],handleAddReference:[4,1,1,""],handleCheckChange:[4,1,1,""],handleInputChange:[4,1,1,""],handleRemovePart:[4,1,1,""],handleRemoveReference:[4,1,1,""],handleRun:[4,1,1,""],makeNetworkUpdate:[4,1,1,""]},Functions:{runAllUsers:[2,1,1,""],runStats:[2,1,1,""]},LastFM:{getUserInfo:[5,1,1,""],handleChange:[5,1,1,""],handleSubmit:[5,1,1,""]},Lock:{getUserInfo:[2,1,1,""],handleLock:[2,1,1,""]},MusicTools:{componentDidMount:[1,1,1,""],componentWillUnmount:[1,1,1,""],getUserInfo:[1,1,1,""],setOpen:[1,1,1,""]},NewPlaylist:{componentDidMount:[4,1,1,""],handleInputChange:[4,1,1,""],handleSubmit:[4,1,1,""],setDescription:[4,1,1,""]},NewTag:{handleInputChange:[6,1,1,""],handleSubmit:[6,1,1,""]},PieChart:{componentDidMount:[3,1,1,""],componentDidUpdate:[3,1,1,""]},PlaylistRouter:{View:[4,0,1,""]},PlaylistsView:{getPlaylists:[4,1,1,""],handleDeletePlaylist:[4,1,1,""],handleRunAll:[4,1,1,""],handleRunPlaylist:[4,1,1,""]},Settings:{handleChange:[5,1,1,""]},SpotifyLink:{getUserInfo:[5,1,1,""]},TagList:{getTags:[6,1,1,""],handleDeleteTag:[6,1,1,""]},TagView:{componentDidMount:[6,1,1,""],getTag:[6,1,1,""],handleAdd:[6,1,1,""],handleChangeAddType:[6,1,1,""],handleCheckChange:[6,1,1,""],handleInputChange:[6,1,1,""],handleRemoveObj:[6,1,1,""],handleRun:[6,1,1,""],makeNetworkUpdate:[6,1,1,""]},Tasks:{getTasks:[2,1,1,""]},admin:{Admin:[7,4,1,""],docs:[7,7,1,""],folders_to_ignore:[7,8,1,""],run:[7,7,1,""],test:[7,7,1,""]},music:{api:[10,3,0,"-"],auth:[11,3,0,"-"],cloud:[12,3,0,"-"],db:[13,3,0,"-"],init_log:[9,7,1,""],model:[14,3,0,"-"],music:[9,3,0,"-"],tasks:[15,3,0,"-"]}},objnames:{"0":["js","class","JavaScript class"],"1":["js","function","JavaScript function"],"2":["js","attribute","JavaScript attribute"],"3":["py","module","Python module"],"4":["py","class","Python class"],"5":["py","method","Python method"],"6":["py","attribute","Python attribute"],"7":["py","function","Python function"],"8":["py","data","Python data"]},objtypes:{"0":"js:class","1":"js:function","2":"js:attribute","3":"py:module","4":"py:class","5":"py:method","6":"py:attribute","7":"py:function","8":"py:data"},terms:{"case":14,"class":[1,2,3,4,5,6,7,13,14],"default":[10,12,14,15],"enum":14,"export":7,"function":[0,1,7,8,9,13,14,15],"int":[7,12],"long":[12,15],"new":[1,2,5,8,15],"return":[2,4,5,6,9,10,11,13,14,15],"static":7,"true":[6,14],Adding:13,For:[4,15],The:0,Used:13,Will:14,access_token:[13,14],account:[2,5,15],action:[4,7],add:6,add_last_month:14,add_this_month:14,adding:[4,6],addtyp:6,admin:[0,1,8,9],admin_requir:10,again:5,album:[6,14],all:[0,2,4,10,12,14],all_playlists_rout:10,all_users_rout:10,allow:11,api:[0,1,2,4,5,6,8,9],app:[0,1,7,9,10,14,15],appli:3,arg:[4,5,7,10,14],argument:[1,2,4,5,6,7],artist:[6,14],asid:13,attributeerror:15,auth:[0,8,9],authbutton:5,authent:[5,13],avail:15,axio:0,backend:[0,8],background:7,bar:[1,8],barchart:3,base:[0,7,13,14],begin:7,best:14,between:6,blockgriditem:4,blueprint:[9,10],bool:[1,14],box:[4,5,6],build:7,button:[2,4,5],callback:13,cancel:1,card:[1,2,5,8],cell:[2,4],chang:[1,2,4,6,7,8],change_password:10,changepassword:5,chart:[1,8],chart_limit:14,chart_rang:14,check:4,check_dict:10,check_password:14,checkbox:[4,6],click:5,client_id:13,client_secret:13,cloud:[0,7,8,9,13,14],cloud_task:10,cmd:7,code:12,collect:14,collection_nam:14,command:7,compil:7,compile_frontend:7,completekei:7,compnent:2,compon:[0,1,2,3,4,5,6,7,13],componentdidmount:[1,3,4,6],componentdidupd:3,componentwillunmount:1,compos:0,config:[8,9],consol:[7,9],contain:[4,9,14],content:[8,9],convert:14,copi:7,copy_main_fil:7,correct:14,correspond:7,count:[4,10,14],creat:[0,9,12,15],create_app:9,create_playlist:[8,9],credemti:13,credenti:13,cron:7,css:7,current:[0,5],daily_scrobbl:10,data:[2,3,4,5,6,14],databas:[8,9],databaseus:13,day_boundari:14,deauth:11,deauthbutton:5,deauthent:5,decor:[8,9],delai:12,delet:[4,6],delete_tag:10,depend:[12,13],deploi:7,deploy:7,deploy_funct:7,descript:[4,10,14,15],description_overwrit:14,description_suffix:14,determin:14,dict:14,dictionari:[4,6],direct:6,directori:7,dispatch:0,divert:4,do_app:7,do_cron_funct:7,do_doc:7,do_exit:7,do_main_group:7,do_playlist:7,do_playlist_cron:7,do_playlist_stats_cron:7,do_prepare_local_stag:7,do_pydepend:7,do_renam:7,do_run:7,do_sass:7,do_set_project:7,do_tag:7,do_tags_cron:7,do_test:7,do_watchsass:7,doc:7,document:[7,13],documentrefer:13,done:14,down:6,drawer:1,drop:6,dropbox:4,dure:4,edit:[1,8],email:14,end:7,endpoint:[10,11],engin:7,entri:4,enumer:14,environ:[7,12],error:[6,15],error_toast:6,europ:7,event:[2,4,5,6],exact:14,execut:12,exit:7,expected_arg:10,export_filtered_depend:7,fals:9,file:7,fireo:[0,14],firestor:[7,13,14],firestore_v1:13,first:14,flask:[0,7,8,10],fmframework:[0,7,13,15],fmnet:15,fmnetwork:13,folder:7,folders_to_ignor:7,found:14,from:[1,2,3,4,5,6,7,13],front:7,frontend:[0,8],fullplaylist:15,func:10,function_deploi:7,function_id:7,gae_cron:10,gcloud:7,gcp:12,gener:[7,9,15],get:[1,2,4,5,6,11,13,14],get_authed_lastfm_network:13,get_authed_spotify_network:13,get_playlist:14,get_recursive_part:13,get_tag:10,get_task:10,getplaylist:4,getplaylistinfo:4,getplaylistlink:4,gettag:6,gettaglink:6,gettask:2,getuserinfo:[1,2,4,5],git:7,given:[4,10,12,13],googl:[0,13],grid:[2,4,6],hand:12,handl:[2,4,5,6,13],handleadd:6,handleaddpart:4,handleaddrefer:4,handlechang:[2,4,5],handlechangeaddtyp:6,handlecheckchang:[4,6],handlecurrentchang:5,handledeleteplaylist:4,handledeletetag:6,handleinputchang:[4,6],handlelock:2,handlenew2chang:5,handlenewchang:5,handleremoveobj:6,handleremovepart:4,handleremoverefer:4,handlerun:[4,6],handlerunal:4,handlerunplaylist:4,handlesubmit:[4,5,6],has:[4,15],help:7,home:11,host:[0,2,4,5],html:11,http:[0,10,11],idea:7,imag:10,includ:[4,7,11,12,15],include_library_track:14,include_recommend:14,index:0,info:[1,4,5,6],infor:2,infrastuctur:12,init:4,init_log:9,initi:[4,7],initialis:9,inject:7,input:[4,5,6],insensit:14,interfac:[0,13],intern:13,intro:7,is_basic_auth:10,is_logged_in:10,job:7,kei:14,kwarg:[10,14],last:[0,1,4,8,15],last_fm_client_id:14,last_login:14,last_refresh:14,last_upd:14,lastfm:5,lastfm_stat_album_count:14,lastfm_stat_album_perc:14,lastfm_stat_artist_count:14,lastfm_stat_artist_perc:14,lastfm_stat_count:14,lastfm_stat_last_refresh:14,lastfm_stat_perc:14,lastfm_usernam:14,lastfm_username_requir:10,layer:[0,13,14],level:[4,9,14],link:[1,4,8],list:[1,8,13],listblock:4,listen:4,load:[1,3,4,6,9,10],local:7,lock:[1,8,14],log:9,login:11,login_or_basic_auth:10,login_requir:10,logout:11,longer:0,main:[4,7],make:[2,4,5,6],makenetworkupd:[4,6],manag:[4,14],manifest:7,map:6,match:[4,14],materi:0,math:[0,1,8],meta:14,model:[0,8,9,13,15],modul:0,music:[4,7],music_obj:6,musictool:1,mutable_kei:14,name:[4,6,7,12,13,14,15],nameerror:[14,15],net:[13,15],network:[5,6,13,15],networkus:13,newli:13,newplaylist:4,newtag:6,newvalu:[2,4,5],next_track:10,node_modul:7,none:[7,10,12,13,14,15],noth:[6,14],npm:7,object:[4,5,6,13,14,15],off:12,offload_or_run_user_playlist:12,open:1,oper:[12,14,15],option:[4,10,12,13,14,15],orm:[0,13,14],other:13,otherwis:14,page:[0,4,11],paramet:[7,10,12,13,14,15],part:[6,14],part_gener:[8,9],partgener:13,password:[1,8,11,14],path:[7,14],pie:[1,8],piechart:3,plai:10,platform:0,player:[8,9],playlist:[0,1,2,7,8,9,10,12,13,15],playlist_cloud_operating_mod:14,playlist_get_delete_rout:10,playlist_nam:[12,14,15],playlist_post_put_rout:10,playlist_refer:14,playlist_refresh:10,playlistcard:4,playlistgrid:4,playlistnam:4,playlistrout:4,playlistsview:4,poetri:7,possibl:14,post:[4,5,11],post_tag:10,prepar:7,present:4,primari:7,process_reference_by_nam:13,process_reference_by_refer:13,project:7,prompt:7,prop:[1,2,3,4,5,6],properti:[3,4,5,6],proport:14,provid:15,put:6,put_tag:10,python:7,queue:12,queue_run_user_playlist:12,rais:[14,15],raise_error:14,react:[0,3,8],readi:9,recommendation_sampl:14,recurs:13,redirect:11,ref:13,refer:4,referenc:13,referenceentri:4,refresh:[4,6,12],refresh_all_user_playlist_stat:12,refresh_lastfm_album_stat:15,refresh_lastfm_artist_stat:15,refresh_lastfm_stat:[8,9],refresh_lastfm_track_stat:15,refresh_playlist_task:12,refresh_token:[13,14],refresh_token_database_callback:13,refresh_user_playlist_stat:12,refresh_user_stats_task:12,region:7,regist:11,relat:11,release_d:14,remov:[4,6],renam:7,request:[0,1,2,4,5,6,11],request_param:10,requir:7,reset:[11,13],resolut:13,resolv:13,respons:[10,11],result:[4,11],retriev:[9,10,11,13,15],root:[0,1,8],rout:11,router:[1,8],row:2,run:[2,4,7,9,12,15],run_all_playlist:7,run_all_playlist_stat:7,run_all_tag:7,run_playlist:10,run_playlist_album_task:10,run_playlist_artist_task:10,run_playlist_task:10,run_playlist_track_task:10,run_tag_task:10,run_us:10,run_user_playlist:[7,8,9],run_user_playlist_funct:12,run_user_playlist_task:12,run_user_task:10,runallus:2,runstat:2,sarsoolib:7,sass:7,schedul:7,script:0,search:0,second:12,secret_kei:14,secur:11,send:4,sensit:14,server:0,serverless:12,servic:14,set:[0,1,4,7,8,14],setdescript:4,setopen:1,show:6,shuffl:[10,14],side:1,single_return:14,smart:[0,4,13,14,15],sort:[4,10,14],sourc:7,sphinx:7,spotfm:[7,8,9],spotframework:[0,7,13,15],spotifi:[0,1,4,8,9,13,15],spotify_client_id:14,spotify_client_secret:14,spotify_link:14,spotify_link_requir:10,spotify_us:14,spotifylink:5,spotifynetwork:13,spotnet:15,spotnetwork:15,stack:9,stage:7,stat:[1,2,8,12],state:[1,2,4,5,6,13],statist:4,statu:5,stdin:7,stdout:7,store:13,str:[7,12,13,14,15],string:4,structur:[4,5,14],subject:[2,4,6,12,13,14,15],submiss:11,submit:[5,6],tab:[2,4,5,7],tag:[0,1,8,9,12,15],tag_id:[6,10,12,14],tag_refresh:10,tag_rout:10,tagcard:6,taggrid:6,taglist:6,tagnam:6,tagrout:6,tagview:6,target:2,task:[0,1,7,8,9,14],tasktyp:2,test:7,time_object:14,timeout:7,to_dict:14,to_stat:2,toast:6,token:11,token_expiri:14,tool:[4,7,9,13],top:[4,9],total_tim:14,total_time_m:14,total_user_scrobbl:14,track:[6,14],trigger:4,txt:7,type:[4,6,9,10,11,13,14,15],unit:7,upad:15,updat:[3,4,6,7,12,13,14,15],update_all_user_playlist:12,update_all_user_tag:12,update_playlist:12,update_tag:[7,8,9,12],updatestat:4,uri:[14,15],url:[4,6],user:[1,2,4,5,8,9,10,12,13,15],user_id:13,user_rout:10,usernam:[1,2,4,8,12,13,14,15],using:[3,7],valid:[4,5,6,14],validate_arg:10,validate_json:10,valu:[4,14],variabl:7,venv:7,view:[1,8],volum:10,walk:13,watch:[4,6,7],web:0,west2:7,when:[13,15],whether:[1,6,14],work:7,wrap:[2,4]},titles:["Music Tools","React Frontend","Admin","Maths","Playlist","Settings","Tag","admin script","Music Tools Modules","Flask Backend","music.api","music.auth","music.cloud","music.db","music.model","music.tasks"],titleterms:{"function":[2,12],"new":[4,6],admin:[2,7,10],api:10,auth:11,backend:9,bar:3,card:[4,6],chang:5,chart:3,cloud:12,config:14,content:[0,10,11,12,13,14,15],create_playlist:15,databas:13,decor:10,edit:[4,6],flask:9,frontend:1,indic:0,last:5,link:5,list:[4,6],lock:2,math:3,model:14,modul:[8,9,10,11,12,13,14,15],music:[0,8,9,10,11,12,13,14,15],part_gener:13,password:5,pie:3,player:10,playlist:[4,14],react:1,refresh_lastfm_stat:15,root:9,router:[2,4,5,6],run_user_playlist:15,script:7,set:5,spotfm:10,spotifi:[5,10],stat:4,tabl:0,tag:[6,10,14],task:[2,12,15],tool:[0,8],update_tag:15,user:14,usernam:5,view:[4,6]}}) \ No newline at end of file +Search.setIndex({docnames:["index","src/MusicTools","src/MusicTools.Admin","src/MusicTools.Maths","src/MusicTools.Playlist","src/MusicTools.Settings","src/MusicTools.Tag","src/admin","src/modules","src/music","src/music.api","src/music.auth","src/music.cloud","src/music.db","src/music.model","src/music.tasks"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst","src/MusicTools.rst","src/MusicTools.Admin.rst","src/MusicTools.Maths.rst","src/MusicTools.Playlist.rst","src/MusicTools.Settings.rst","src/MusicTools.Tag.rst","src/admin.rst","src/modules.rst","src/music.rst","src/music.api.rst","src/music.auth.rst","src/music.cloud.rst","src/music.db.rst","src/music.model.rst","src/music.tasks.rst"],objects:{"":{Admin:[2,0,1,""],AuthButton:[5,1,1,""],BarChart:[3,0,1,""],ChangePassword:[5,0,1,""],Count:[4,0,1,""],DeAuthButton:[5,1,1,""],Edit:[4,0,1,""],Functions:[2,0,1,""],LastFM:[5,0,1,""],Lock:[2,0,1,""],MusicTools:[1,0,1,""],NewPlaylist:[4,0,1,""],NewTag:[6,0,1,""],PieChart:[3,0,1,""],PlaylistCard:[4,0,1,""],PlaylistGrid:[4,0,1,""],Playlists:[4,0,1,""],PlaylistsView:[4,0,1,""],ReferenceEntry:[4,1,1,""],Row:[2,1,1,""],Settings:[5,0,1,""],SpotifyLink:[5,0,1,""],TagCard:[6,1,1,""],TagGrid:[6,1,1,""],TagList:[6,0,1,""],TagRouter:[6,0,1,""],TagView:[6,0,1,""],TaskType:[2,1,1,""],Tasks:[2,0,1,""],admin:[7,3,0,"-"],getPlaylistLink:[4,1,1,""],getTagLink:[6,1,1,""],music:[9,3,0,"-"]},"PlaylistRouter.View":{handleChange:[4,1,1,""]},"admin.Admin":{compile_frontend:[7,5,1,""],copy_main_file:[7,5,1,""],deploy_function:[7,5,1,""],do_app:[7,5,1,""],do_cron_functions:[7,5,1,""],do_docs:[7,5,1,""],do_exit:[7,5,1,""],do_main_group:[7,5,1,""],do_playlist:[7,5,1,""],do_playlist_cron:[7,5,1,""],do_playlist_stats_cron:[7,5,1,""],do_prepare_local_stage:[7,5,1,""],do_pydepend:[7,5,1,""],do_rename:[7,5,1,""],do_run:[7,5,1,""],do_sass:[7,5,1,""],do_set_project:[7,5,1,""],do_tag:[7,5,1,""],do_tags_cron:[7,5,1,""],do_test:[7,5,1,""],do_watchsass:[7,5,1,""],export_filtered_dependencies:[7,5,1,""],function_deploy:[7,5,1,""],intro:[7,6,1,""],locals:[7,6,1,""],prompt:[7,6,1,""]},"music.api":{admin:[10,3,0,"-"],api:[10,3,0,"-"],decorators:[10,3,0,"-"],fm:[10,3,0,"-"],player:[10,3,0,"-"],spotfm:[10,3,0,"-"],spotify:[10,3,0,"-"],tag:[10,3,0,"-"]},"music.api.admin":{get_tasks:[10,7,1,""]},"music.api.api":{all_playlists_route:[10,7,1,""],all_users_route:[10,7,1,""],change_password:[10,7,1,""],image:[10,7,1,""],playlist_get_delete_route:[10,7,1,""],playlist_post_put_route:[10,7,1,""],run_playlist:[10,7,1,""],run_playlist_task:[10,7,1,""],run_user:[10,7,1,""],run_user_task:[10,7,1,""],run_users:[10,7,1,""],user_route:[10,7,1,""]},"music.api.decorators":{admin_required:[10,7,1,""],check_dict:[10,7,1,""],cloud_task:[10,7,1,""],gae_cron:[10,7,1,""],is_basic_authed:[10,7,1,""],is_logged_in:[10,7,1,""],lastfm_username_required:[10,7,1,""],login_or_basic_auth:[10,7,1,""],login_required:[10,7,1,""],spotify_link_required:[10,7,1,""],validate_args:[10,7,1,""],validate_json:[10,7,1,""]},"music.api.fm":{daily_scrobbles:[10,7,1,""]},"music.api.player":{next_track:[10,7,1,""],play:[10,7,1,""],shuffle:[10,7,1,""],volume:[10,7,1,""]},"music.api.spotfm":{count:[10,7,1,""],playlist_refresh:[10,7,1,""],run_playlist_album_task:[10,7,1,""],run_playlist_artist_task:[10,7,1,""],run_playlist_track_task:[10,7,1,""],run_user:[10,7,1,""],run_user_task:[10,7,1,""],run_users:[10,7,1,""]},"music.api.spotify":{sort:[10,7,1,""]},"music.api.tag":{delete_tag:[10,7,1,""],get_tag:[10,7,1,""],post_tag:[10,7,1,""],put_tag:[10,7,1,""],run_tag_task:[10,7,1,""],tag_refresh:[10,7,1,""],tag_route:[10,7,1,""],tags:[10,7,1,""]},"music.auth":{auth:[11,3,0,"-"]},"music.auth.auth":{auth:[11,7,1,""],deauth:[11,7,1,""],login:[11,7,1,""],logout:[11,7,1,""],register:[11,7,1,""],token:[11,7,1,""]},"music.cloud":{"function":[12,3,0,"-"],offload_or_run_user_playlist:[12,7,1,""],queue_run_user_playlist:[12,7,1,""],tasks:[12,3,0,"-"]},"music.cloud.function":{run_user_playlist_function:[12,7,1,""],update_tag:[12,7,1,""]},"music.cloud.tasks":{refresh_all_user_playlist_stats:[12,7,1,""],refresh_playlist_task:[12,7,1,""],refresh_user_playlist_stats:[12,7,1,""],refresh_user_stats_task:[12,7,1,""],run_user_playlist_task:[12,7,1,""],update_all_user_playlists:[12,7,1,""],update_all_user_tags:[12,7,1,""],update_playlists:[12,7,1,""]},"music.db":{database:[13,3,0,"-"],part_generator:[13,3,0,"-"]},"music.db.database":{DatabaseUser:[13,4,1,""],get_authed_lastfm_network:[13,7,1,""],get_authed_spotify_network:[13,7,1,""],refresh_token_database_callback:[13,7,1,""]},"music.db.database.DatabaseUser":{user_id:[13,6,1,""]},"music.db.part_generator":{PartGenerator:[13,4,1,""]},"music.db.part_generator.PartGenerator":{get_recursive_parts:[13,5,1,""],process_reference_by_name:[13,5,1,""],process_reference_by_reference:[13,5,1,""],reset:[13,5,1,""]},"music.model":{config:[14,3,0,"-"],playlist:[14,3,0,"-"],tag:[14,3,0,"-"],user:[14,3,0,"-"]},"music.model.config":{Config:[14,4,1,""]},"music.model.config.Config":{Meta:[14,4,1,""],collection:[14,6,1,""],collection_name:[14,6,1,""],last_fm_client_id:[14,6,1,""],playlist_cloud_operating_mode:[14,6,1,""],secret_key:[14,6,1,""],spotify_client_id:[14,6,1,""],spotify_client_secret:[14,6,1,""]},"music.model.config.Config.Meta":{collection_name:[14,6,1,""]},"music.model.playlist":{Playlist:[14,4,1,""],Sort:[14,4,1,""]},"music.model.playlist.Playlist":{Meta:[14,4,1,""],add_last_month:[14,6,1,""],add_this_month:[14,6,1,""],chart_limit:[14,6,1,""],chart_range:[14,6,1,""],collection:[14,6,1,""],collection_name:[14,6,1,""],day_boundary:[14,6,1,""],description_overwrite:[14,6,1,""],description_suffix:[14,6,1,""],include_library_tracks:[14,6,1,""],include_recommendations:[14,6,1,""],include_spotify_owned:[14,6,1,""],last_updated:[14,6,1,""],lastfm_stat_album_count:[14,6,1,""],lastfm_stat_album_percent:[14,6,1,""],lastfm_stat_artist_count:[14,6,1,""],lastfm_stat_artist_percent:[14,6,1,""],lastfm_stat_count:[14,6,1,""],lastfm_stat_last_refresh:[14,6,1,""],lastfm_stat_percent:[14,6,1,""],mutable_keys:[14,6,1,""],name:[14,6,1,""],parts:[14,6,1,""],playlist_references:[14,6,1,""],recommendation_sample:[14,6,1,""],shuffle:[14,6,1,""],sort:[14,6,1,""],to_dict:[14,5,1,""],type:[14,6,1,""],uri:[14,6,1,""]},"music.model.playlist.Playlist.Meta":{collection_name:[14,6,1,""]},"music.model.playlist.Sort":{"default":[14,6,1,""],release_date:[14,6,1,""],shuffle:[14,6,1,""]},"music.model.tag":{Tag:[14,4,1,""]},"music.model.tag.Tag":{Meta:[14,4,1,""],albums:[14,6,1,""],artists:[14,6,1,""],collection:[14,6,1,""],collection_name:[14,6,1,""],count:[14,6,1,""],last_updated:[14,6,1,""],name:[14,6,1,""],proportion:[14,6,1,""],tag_id:[14,6,1,""],time_objects:[14,6,1,""],to_dict:[14,5,1,""],total_time:[14,6,1,""],total_time_ms:[14,6,1,""],total_user_scrobbles:[14,6,1,""],tracks:[14,6,1,""],username:[14,6,1,""]},"music.model.tag.Tag.Meta":{collection_name:[14,6,1,""]},"music.model.user":{User:[14,4,1,""]},"music.model.user.User":{Meta:[14,4,1,""],access_token:[14,6,1,""],check_password:[14,5,1,""],collection:[14,6,1,""],collection_name:[14,6,1,""],email:[14,6,1,""],get_playlist:[14,5,1,""],get_playlists:[14,5,1,""],last_login:[14,6,1,""],last_refreshed:[14,6,1,""],lastfm_username:[14,6,1,""],locked:[14,6,1,""],password:[14,6,1,""],refresh_token:[14,6,1,""],spotify_linked:[14,6,1,""],to_dict:[14,5,1,""],token_expiry:[14,6,1,""],type:[14,6,1,""],username:[14,6,1,""],validated:[14,6,1,""]},"music.model.user.User.Meta":{collection_name:[14,6,1,""]},"music.music":{create_app:[9,7,1,""]},"music.tasks":{create_playlist:[15,3,0,"-"],refresh_lastfm_stats:[15,3,0,"-"],run_user_playlist:[15,3,0,"-"],update_tag:[15,3,0,"-"]},"music.tasks.create_playlist":{create_playlist:[15,7,1,""]},"music.tasks.refresh_lastfm_stats":{refresh_lastfm_album_stats:[15,7,1,""],refresh_lastfm_artist_stats:[15,7,1,""],refresh_lastfm_track_stats:[15,7,1,""]},"music.tasks.run_user_playlist":{run_user_playlist:[15,7,1,""]},"music.tasks.update_tag":{update_tag:[15,7,1,""]},Admin:{handleChange:[2,1,1,""]},BarChart:{componentDidMount:[3,1,1,""],componentDidUpdate:[3,1,1,""]},ChangePassword:{handleCurrentChange:[5,1,1,""],handleNew2Change:[5,1,1,""],handleNewChange:[5,1,1,""],handleSubmit:[5,1,1,""]},Count:{Count:[4,2,1,""],getUserInfo:[4,1,1,""],updateStats:[4,1,1,""]},Edit:{BlockGridItem:[4,1,1,""],Edit:[4,2,1,""],ListBlock:[4,1,1,""],componentDidMount:[4,1,1,""],getPlaylistInfo:[4,1,1,""],getPlaylists:[4,1,1,""],handleAddPart:[4,1,1,""],handleAddReference:[4,1,1,""],handleCheckChange:[4,1,1,""],handleInputChange:[4,1,1,""],handleRemovePart:[4,1,1,""],handleRemoveReference:[4,1,1,""],handleRun:[4,1,1,""],makeNetworkUpdate:[4,1,1,""]},Functions:{runAllUsers:[2,1,1,""],runStats:[2,1,1,""]},LastFM:{getUserInfo:[5,1,1,""],handleChange:[5,1,1,""],handleSubmit:[5,1,1,""]},Lock:{getUserInfo:[2,1,1,""],handleLock:[2,1,1,""]},MusicTools:{componentDidMount:[1,1,1,""],componentWillUnmount:[1,1,1,""],getUserInfo:[1,1,1,""],setOpen:[1,1,1,""]},NewPlaylist:{componentDidMount:[4,1,1,""],handleInputChange:[4,1,1,""],handleSubmit:[4,1,1,""],setDescription:[4,1,1,""]},NewTag:{handleInputChange:[6,1,1,""],handleSubmit:[6,1,1,""]},PieChart:{componentDidMount:[3,1,1,""],componentDidUpdate:[3,1,1,""]},PlaylistRouter:{View:[4,0,1,""]},PlaylistsView:{getPlaylists:[4,1,1,""],handleDeletePlaylist:[4,1,1,""],handleRunAll:[4,1,1,""],handleRunPlaylist:[4,1,1,""]},Settings:{handleChange:[5,1,1,""]},SpotifyLink:{getUserInfo:[5,1,1,""]},TagList:{getTags:[6,1,1,""],handleDeleteTag:[6,1,1,""]},TagView:{componentDidMount:[6,1,1,""],getTag:[6,1,1,""],getUserInfo:[6,1,1,""],handleAdd:[6,1,1,""],handleChangeAddType:[6,1,1,""],handleCheckChange:[6,1,1,""],handleInputChange:[6,1,1,""],handleRemoveObj:[6,1,1,""],handleRun:[6,1,1,""],handleView:[6,1,1,""],makeNetworkUpdate:[6,1,1,""]},Tasks:{getTasks:[2,1,1,""]},admin:{Admin:[7,4,1,""],docs:[7,7,1,""],folders_to_ignore:[7,8,1,""],run:[7,7,1,""],test:[7,7,1,""]},music:{api:[10,3,0,"-"],auth:[11,3,0,"-"],cloud:[12,3,0,"-"],db:[13,3,0,"-"],init_log:[9,7,1,""],model:[14,3,0,"-"],music:[9,3,0,"-"],tasks:[15,3,0,"-"]}},objnames:{"0":["js","class","JavaScript class"],"1":["js","function","JavaScript function"],"2":["js","attribute","JavaScript attribute"],"3":["py","module","Python module"],"4":["py","class","Python class"],"5":["py","method","Python method"],"6":["py","attribute","Python attribute"],"7":["py","function","Python function"],"8":["py","data","Python data"]},objtypes:{"0":"js:class","1":"js:function","2":"js:attribute","3":"py:module","4":"py:class","5":"py:method","6":"py:attribute","7":"py:function","8":"py:data"},terms:{"case":14,"class":[1,2,3,4,5,6,7,13,14],"default":[10,12,14,15],"enum":14,"export":7,"function":[0,1,7,8,9,13,14,15],"int":[7,12],"long":[12,15],"new":[1,2,5,8,15],"return":[2,4,5,6,9,10,11,13,14,15],"static":7,"true":[6,14],Adding:13,For:[4,15],The:0,Used:13,Will:14,access_token:[13,14],account:[2,5,15],action:[4,7],add:6,add_last_month:14,add_this_month:14,adding:[4,6],addtyp:6,admin:[0,1,8,9],admin_requir:10,again:5,album:[6,14],all:[0,2,4,10,12,14],all_playlists_rout:10,all_users_rout:10,allow:11,api:[0,1,2,4,5,6,8,9],app:[0,1,7,9,10,14,15],appli:3,arg:[4,5,7,10,14],argument:[1,2,4,5,6,7],artist:[6,14],asid:13,attributeerror:15,auth:[0,8,9],authbutton:5,authent:[5,13],avail:15,axio:0,backend:[0,8],background:7,bar:[1,8],barchart:3,base:[0,7,13,14],begin:7,best:14,between:6,blockgriditem:4,blueprint:[9,10],bool:[1,14],box:[4,5,6],build:7,button:[2,4,5],callback:13,cancel:1,card:[1,2,5,8],cell:[2,4],chang:[1,2,4,6,7,8],change_password:10,changepassword:5,chart:[1,8],chart_limit:14,chart_rang:14,check:4,check_dict:10,check_password:14,checkbox:[4,6],click:5,client_id:13,client_secret:13,cloud:[0,7,8,9,13,14],cloud_task:10,cmd:7,code:12,collect:14,collection_nam:14,command:7,compil:7,compile_frontend:7,completekei:7,compnent:2,compon:[0,1,2,3,4,5,6,7,13],componentdidmount:[1,3,4,6],componentdidupd:3,componentwillunmount:1,compos:0,config:[8,9],consol:[7,9],contain:[4,9,14],content:[8,9],convert:14,copi:7,copy_main_fil:7,correct:14,correspond:7,count:[4,10,14],creat:[0,9,12,15],create_app:9,create_playlist:[8,9],credemti:13,credenti:13,cron:7,css:7,current:[0,5],daily_scrobbl:10,data:[2,3,4,5,6,14],databas:[8,9],databaseus:13,day_boundari:14,deauth:11,deauthbutton:5,deauthent:5,decor:[8,9],delai:12,delet:[4,6],delete_tag:10,depend:[12,13],deploi:7,deploy:7,deploy_funct:7,descript:[4,10,14,15],description_overwrit:14,description_suffix:14,determin:14,dict:14,dictionari:[4,6],direct:6,directori:7,dispatch:0,divert:4,do_app:7,do_cron_funct:7,do_doc:7,do_exit:7,do_main_group:7,do_playlist:7,do_playlist_cron:7,do_playlist_stats_cron:7,do_prepare_local_stag:7,do_pydepend:7,do_renam:7,do_run:7,do_sass:7,do_set_project:7,do_tag:7,do_tags_cron:7,do_test:7,do_watchsass:7,doc:7,document:[7,13],documentrefer:13,done:14,down:6,drawer:1,drop:6,dropbox:4,dure:4,edit:[1,8],element:6,email:14,end:7,endpoint:[10,11],engin:7,entri:4,enumer:14,environ:[7,12],error:[6,15],error_toast:6,etc:6,europ:7,event:[2,4,5,6],exact:14,execut:12,exit:7,expected_arg:10,export_filtered_depend:7,fals:9,file:7,fireo:[0,14],firestor:[7,13,14],firestore_v1:13,first:14,flask:[0,7,8,10],fmframework:[0,7,13,15],fmnet:15,fmnetwork:13,folder:7,folders_to_ignor:7,found:14,from:[1,2,3,4,5,6,7,13],front:7,frontend:[0,8],fullplaylist:15,func:10,function_deploi:7,function_id:7,gae_cron:10,gcloud:7,gcp:12,gener:[7,9,15],get:[1,2,4,5,6,11,13,14],get_authed_lastfm_network:13,get_authed_spotify_network:13,get_playlist:14,get_recursive_part:13,get_tag:10,get_task:10,getplaylist:4,getplaylistinfo:4,getplaylistlink:4,gettag:6,gettaglink:6,gettask:2,getuserinfo:[1,2,4,5,6],git:7,given:[4,10,12,13],googl:[0,13],grid:[2,4,6],hand:12,handl:[2,4,5,6,13],handleadd:6,handleaddpart:4,handleaddrefer:4,handlechang:[2,4,5],handlechangeaddtyp:6,handlecheckchang:[4,6],handlecurrentchang:5,handledeleteplaylist:4,handledeletetag:6,handleinputchang:[4,6],handlelock:2,handlenew2chang:5,handlenewchang:5,handleremoveobj:6,handleremovepart:4,handleremoverefer:4,handlerun:[4,6],handlerunal:4,handlerunplaylist:4,handlesubmit:[4,5,6],handleview:6,has:[4,15],help:7,home:11,host:[0,2,4,5],html:11,http:[0,10,11],idea:7,imag:10,includ:[4,7,11,12,15],include_library_track:14,include_recommend:14,include_spotify_own:14,index:0,info:[1,4,5,6],infor:2,infrastuctur:12,init:4,init_log:9,initi:[4,7],initialis:9,inject:7,input:[4,5,6],insensit:14,interfac:[0,13],intern:13,intro:7,is_basic_auth:10,is_logged_in:10,job:7,kei:14,kwarg:[10,14],last:[0,1,4,6,8,15],last_fm_client_id:14,last_login:14,last_refresh:14,last_upd:14,lastfm:5,lastfm_stat_album_count:14,lastfm_stat_album_perc:14,lastfm_stat_artist_count:14,lastfm_stat_artist_perc:14,lastfm_stat_count:14,lastfm_stat_last_refresh:14,lastfm_stat_perc:14,lastfm_usernam:14,lastfm_username_requir:10,layer:[0,13,14],level:[4,9,14],link:[1,4,8],list:[1,8,13,14],listblock:4,listen:4,load:[1,3,4,6,9,10],local:7,lock:[1,8,14],log:9,login:11,login_or_basic_auth:10,login_requir:10,logout:11,longer:0,main:[4,7],make:[2,4,5,6],makenetworkupd:[4,6],manag:[4,14],manifest:7,map:6,match:[4,14],materi:0,math:[0,1,8],meta:14,model:[0,8,9,13,15],modul:0,music:[4,7],music_obj:6,musictool:1,mutable_kei:14,name:[4,6,7,12,13,14,15],nameerror:[14,15],net:[13,15],network:[5,6,13,15],networkus:13,newli:13,newplaylist:4,newtag:6,newvalu:[2,4,5],next_track:10,node_modul:7,none:[7,10,12,13,14,15],noth:[6,14],npm:7,object:[4,5,6,13,14,15],off:12,offload_or_run_user_playlist:12,open:[1,6],oper:[12,14,15],option:[4,10,12,13,14,15],orm:[0,13,14],other:13,otherwis:14,page:[0,4,11],paramet:[7,10,12,13,14,15],part:[6,14],part_gener:[8,9],partgener:13,password:[1,8,11,14],path:[7,14],pie:[1,8],piechart:3,plai:10,platform:0,player:[8,9],playlist:[0,1,2,7,8,9,10,12,13,15],playlist_cloud_operating_mod:14,playlist_get_delete_rout:10,playlist_nam:[12,14,15],playlist_post_put_rout:10,playlist_refer:14,playlist_refresh:10,playlistcard:4,playlistgrid:4,playlistnam:4,playlistrout:4,playlistsview:4,poetri:7,possibl:14,post:[4,5,11],post_tag:10,prepar:7,present:4,primari:7,process_reference_by_nam:13,process_reference_by_refer:13,project:7,prompt:7,prop:[1,2,3,4,5,6],properti:[3,4,5,6],proport:14,provid:15,put:6,put_tag:10,python:7,queue:12,queue_run_user_playlist:12,rais:[14,15],raise_error:14,react:[0,3,8],readi:9,recommendation_sampl:14,recurs:13,redirect:11,ref:13,refer:4,referenc:13,referenceentri:4,refresh:[4,6,12],refresh_all_user_playlist_stat:12,refresh_lastfm_album_stat:15,refresh_lastfm_artist_stat:15,refresh_lastfm_stat:[8,9],refresh_lastfm_track_stat:15,refresh_playlist_task:12,refresh_token:[13,14],refresh_token_database_callback:13,refresh_user_playlist_stat:12,refresh_user_stats_task:12,region:7,regist:11,relat:11,release_d:14,remov:[4,6],renam:7,request:[0,1,2,4,5,6,11],request_param:10,requir:7,reset:[11,13],resolut:13,resolv:13,respons:[10,11],result:[4,11],retriev:[9,10,11,13,15],root:[0,1,8],rout:11,router:[1,8],row:2,run:[2,4,7,9,12,15],run_all_playlist:7,run_all_playlist_stat:7,run_all_tag:7,run_playlist:10,run_playlist_album_task:10,run_playlist_artist_task:10,run_playlist_task:10,run_playlist_track_task:10,run_tag_task:10,run_us:10,run_user_playlist:[7,8,9],run_user_playlist_funct:12,run_user_playlist_task:12,run_user_task:10,runallus:2,runstat:2,sarsoolib:7,sass:7,schedul:7,script:0,search:0,second:12,secret_kei:14,secur:11,send:4,sensit:14,server:0,serverless:12,servic:14,set:[0,1,4,7,8,14],setdescript:4,setopen:1,show:6,shuffl:[10,14],side:1,single_return:14,smart:[0,4,13,14,15],sort:[4,10,14],sourc:7,sphinx:7,spotfm:[7,8,9],spotframework:[0,7,13,15],spotifi:[0,1,4,8,9,13,15],spotify_client_id:14,spotify_client_secret:14,spotify_link:14,spotify_link_requir:10,spotify_us:14,spotifylink:5,spotifynetwork:13,spotnet:15,spotnetwork:15,stack:9,stage:7,stat:[1,2,8,12],state:[1,2,4,5,6,13],statist:4,statu:5,stdin:7,stdout:7,store:13,str:[7,12,13,14,15],string:4,structur:[4,5,14],subject:[2,4,6,12,13,14,15],submiss:11,submit:[5,6],tab:[2,4,5,7],tag:[0,1,8,9,12,15],tag_id:[6,10,12,14],tag_refresh:10,tag_rout:10,tagcard:6,taggrid:6,taglist:6,tagnam:6,tagrout:6,tagview:6,target:2,task:[0,1,7,8,9,14],tasktyp:2,test:7,time_object:14,timeout:7,to_dict:14,to_stat:2,toast:6,token:11,token_expiri:14,tool:[4,7,9,13],top:[4,9],total_tim:14,total_time_m:14,total_user_scrobbl:14,track:[6,14],trigger:4,txt:7,type:[4,6,9,10,11,13,14,15],unit:7,upad:15,updat:[3,4,6,7,12,13,14,15],update_all_user_playlist:12,update_all_user_tag:12,update_playlist:12,update_tag:[7,8,9,12],updatestat:4,uri:[14,15],url:[4,6],user:[1,2,4,5,6,8,9,10,12,13,15],user_id:13,user_rout:10,usernam:[1,2,4,8,12,13,14,15],using:[3,7],valid:[4,5,6,14],validate_arg:10,validate_json:10,valu:[4,14],variabl:7,venv:7,view:[1,8],volum:10,walk:13,watch:[4,6,7],web:0,west2:7,when:[13,15],whether:[1,6,14],work:7,wrap:[2,4]},titles:["Music Tools","React Frontend","Admin","Maths","Playlist","Settings","Tag","admin script","Music Tools Modules","Flask Backend","music.api","music.auth","music.cloud","music.db","music.model","music.tasks"],titleterms:{"function":[2,12],"new":[4,6],admin:[2,7,10],api:10,auth:11,backend:9,bar:3,card:[4,6],chang:5,chart:3,cloud:12,config:14,content:[0,10,11,12,13,14,15],create_playlist:15,databas:13,decor:10,edit:[4,6],flask:9,frontend:1,indic:0,last:5,link:5,list:[4,6],lock:2,math:3,model:14,modul:[8,9,10,11,12,13,14,15],music:[0,8,9,10,11,12,13,14,15],part_gener:13,password:5,pie:3,player:10,playlist:[4,14],react:1,refresh_lastfm_stat:15,root:9,router:[2,4,5,6],run_user_playlist:15,script:7,set:5,spotfm:10,spotifi:[5,10],stat:4,tabl:0,tag:[6,10,14],task:[2,12,15],tool:[0,8],update_tag:15,user:14,usernam:5,view:[4,6]}}) \ No newline at end of file diff --git a/src/MusicTools.Admin.html b/src/MusicTools.Admin.html index 917ba89..aea9953 100644 --- a/src/MusicTools.Admin.html +++ b/src/MusicTools.Admin.html @@ -200,7 +200,11 @@
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/MusicTools.Maths.html b/src/MusicTools.Maths.html index 9fb8e6b..527511c 100644 --- a/src/MusicTools.Maths.html +++ b/src/MusicTools.Maths.html @@ -107,7 +107,11 @@
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/MusicTools.Playlist.html b/src/MusicTools.Playlist.html index 6649a44..87ca4a3 100644 --- a/src/MusicTools.Playlist.html +++ b/src/MusicTools.Playlist.html @@ -483,7 +483,11 @@
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/MusicTools.Settings.html b/src/MusicTools.Settings.html index 0771f8e..9478c7b 100644 --- a/src/MusicTools.Settings.html +++ b/src/MusicTools.Settings.html @@ -237,7 +237,11 @@
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/MusicTools.Tag.html b/src/MusicTools.Tag.html index e8fe0d7..86aa695 100644 --- a/src/MusicTools.Tag.html +++ b/src/MusicTools.Tag.html @@ -180,6 +180,12 @@ +
    +
    +TagView.getUserInfo()
    +

    Get user info from API

    +
    +
    TagView.handleAdd()
    @@ -258,6 +264,21 @@
    +
    +
    +TagView.handleView(music_obj, addType, event)
    +

    Open a tag element in Last.fm

    +
    +
    Arguments
    +
      +
    • music_obj (*) – Tag element to be viewed

    • +
    • addType (*) – Tag type, artist, album etc

    • +
    • event (*) –

    • +
    +
    +
    +
    +
    TagView.makeNetworkUpdate(changes)
    @@ -305,7 +326,11 @@
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/MusicTools.html b/src/MusicTools.html index 0394674..6c3293d 100644 --- a/src/MusicTools.html +++ b/src/MusicTools.html @@ -140,7 +140,11 @@
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/music.api.html b/src/music.api.html index 710fdaf..842dc14 100644 --- a/src/music.api.html +++ b/src/music.api.html @@ -342,7 +342,11 @@
  • Js
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/music.auth.html b/src/music.auth.html index 1ae83bc..04b5896 100644 --- a/src/music.auth.html +++ b/src/music.auth.html @@ -113,7 +113,11 @@
  • Js
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/music.cloud.html b/src/music.cloud.html index 0d9708a..c37e16d 100644 --- a/src/music.cloud.html +++ b/src/music.cloud.html @@ -200,7 +200,11 @@
  • Js
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/music.db.html b/src/music.db.html index 7921741..75b0e96 100644 --- a/src/music.db.html +++ b/src/music.db.html @@ -187,7 +187,11 @@
  • Js
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/music.html b/src/music.html index 1f85364..325e7a6 100644 --- a/src/music.html +++ b/src/music.html @@ -140,7 +140,11 @@
  • Js
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/music.model.html b/src/music.model.html index e6337b8..742a436 100644 --- a/src/music.model.html +++ b/src/music.model.html @@ -180,6 +180,11 @@ include_recommendations = None
    +
    +
    +include_spotify_owned = None
    +
    +
    last_updated = None
    @@ -222,7 +227,7 @@
    -mutable_keys = ['type', 'include_recommendations', 'recommendation_sample', 'include_library_tracks', 'parts', 'playlist_references', 'shuffle', 'sort', 'description_overwrite', 'description_suffix', 'add_last_month', 'add_this_month', 'day_boundary', 'chart_range', 'chart_limit']
    +mutable_keys = ['type', 'include_recommendations', 'recommendation_sample', 'include_library_tracks', 'parts', 'playlist_references', 'shuffle', 'sort', 'description_overwrite', 'description_suffix', 'add_last_month', 'add_this_month', 'day_boundary', 'include_spotify_owned', 'chart_range', 'chart_limit']
    @@ -464,6 +469,20 @@
    +
    +
    +get_playlists()
    +

    Get all playlists for a user

    +
    +
    Returns
    +

    List of users playlists

    +
    +
    Return type
    +

    List[Playlist]

    +
    +
    +
    +
    last_login = None
    @@ -561,7 +580,11 @@
  • Js
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +
  • diff --git a/src/music.tasks.html b/src/music.tasks.html index 734e9d1..9d53063 100644 --- a/src/music.tasks.html +++ b/src/music.tasks.html @@ -155,7 +155,11 @@
  • Js
  • Admin Script
  • -
  • All Modules
  • +
  • All Modules +