From 4feb3664933152541d4e22816ab04549ecfce613 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Mon, 13 Feb 2023 16:14:52 +0100 Subject: [PATCH] update --- crud.py | 6 +++--- nostr/__pycache__/__init__.cpython-39.pyc | Bin 174 -> 0 bytes nostr/__pycache__/bech32.cpython-39.pyc | Bin 4679 -> 0 bytes nostr/__pycache__/delegation.cpython-39.pyc | Bin 1320 -> 0 bytes nostr/__pycache__/event.cpython-39.pyc | Bin 4136 -> 0 bytes nostr/__pycache__/filter.cpython-39.pyc | Bin 3906 -> 0 bytes nostr/__pycache__/key.cpython-39.pyc | Bin 6417 -> 0 bytes nostr/__pycache__/message_pool.cpython-39.pyc | Bin 3464 -> 0 bytes nostr/__pycache__/message_type.cpython-39.pyc | Bin 839 -> 0 bytes nostr/__pycache__/relay.cpython-39.pyc | Bin 6081 -> 0 bytes nostr/__pycache__/relay_manager.cpython-39.pyc | Bin 3074 -> 0 bytes nostr/__pycache__/subscription.cpython-39.pyc | Bin 756 -> 0 bytes nostr/client/__pycache__/__init__.cpython-39.pyc | Bin 181 -> 0 bytes nostr/client/__pycache__/cbc.cpython-39.pyc | Bin 1762 -> 0 bytes nostr/client/__pycache__/client.cpython-39.pyc | Bin 4265 -> 0 bytes nostr/client/client.py | 2 +- tasks.py | 5 ++--- views_api.py | 4 ++++ 18 files changed, 10 insertions(+), 7 deletions(-) delete mode 100644 nostr/__pycache__/__init__.cpython-39.pyc delete mode 100644 nostr/__pycache__/bech32.cpython-39.pyc delete mode 100644 nostr/__pycache__/delegation.cpython-39.pyc delete mode 100644 nostr/__pycache__/event.cpython-39.pyc delete mode 100644 nostr/__pycache__/filter.cpython-39.pyc delete mode 100644 nostr/__pycache__/key.cpython-39.pyc delete mode 100644 nostr/__pycache__/message_pool.cpython-39.pyc delete mode 100644 nostr/__pycache__/message_type.cpython-39.pyc delete mode 100644 nostr/__pycache__/relay.cpython-39.pyc delete mode 100644 nostr/__pycache__/relay_manager.cpython-39.pyc delete mode 100644 nostr/__pycache__/subscription.cpython-39.pyc delete mode 100644 nostr/client/__pycache__/__init__.cpython-39.pyc delete mode 100644 nostr/client/__pycache__/cbc.cpython-39.pyc delete mode 100644 nostr/client/__pycache__/client.cpython-39.pyc diff --git a/crud.py b/crud.py index 61cd865..b1916b7 100644 --- a/crud.py +++ b/crud.py @@ -7,14 +7,14 @@ from .models import Relay, RelayList async def get_relays() -> RelayList: - row = await db.fetchall("SELECT * FROM nostradmin.relays") + row = await db.fetchall("SELECT * FROM nostrclient.relays") return RelayList(__root__=row) async def add_relay(relay: Relay) -> None: await db.execute( f""" - INSERT INTO nostradmin.relays ( + INSERT INTO nostrclient.relays ( id, url, active @@ -26,4 +26,4 @@ async def add_relay(relay: Relay) -> None: async def delete_relay(relay: Relay) -> None: - await db.execute("DELETE FROM nostradmin.relays WHERE id = ?", (relay.id,)) + await db.execute("DELETE FROM nostrclient.relays WHERE url = ?", (relay.url,)) diff --git a/nostr/__pycache__/__init__.cpython-39.pyc b/nostr/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index ce5da3f342b62fde0486bf06f4a9e65525e5b001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 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 diff --git a/nostr/__pycache__/delegation.cpython-39.pyc b/nostr/__pycache__/delegation.cpython-39.pyc deleted file mode 100644 index 4490a0cecef6690748b634e7a5b9f1885348c06c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1320 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 QF!3-8a56Cpcrh^o0KpKT0ssI2 diff --git a/nostr/__pycache__/filter.cpython-39.pyc b/nostr/__pycache__/filter.cpython-39.pyc deleted file mode 100644 index 1005deff0d8e878176c57ea13754b749fcec8891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3906 zcmYe~<>g{vU|`tg^DLP`h=JiTh=Yt-7#J8F7#J9ey%-o6QW#Pga~N_NqZk=MY^EHh zT;?cdMursT6qX#8T-GSoT(&4SMh16=6xI~B7KRkIW~L~1cZL-96pj{#6pmEJX67i4 z6wY7Dy@o~##hH2OIjOoisU;<;MJQ$_7NsgA<`n0{>`zUBSd*BN5}yb& zCcY#wJwXrbV$U>%M1_LHqLR$y(wxL1EGDNXX66+u6cpv>X6B{lC8z2rq(XfOvqPac zBfm5!MIk8_Y-D0eN@|Lpf?Ix(LTW`~Zb43}6<8b;ZpsR9M}V9S7l#C-9)>G5)JxQL z6rwW{i!(|R(~Dy@A>j-$3go8zlGGH1l6(v|!A*w5oCeecaIo4Un+Gz=Pm}W&CnO>= zQ;Kh~W@qN56yIV`EG@~%FDkypTAZ1eoO+A3G_NEx=N1=4At=UfaU(_6E!LdO+{}_& zY(=RhrA2wkoJdI+#0KRsXHX7HVqjpXVXR?@XQ*MSVTfm}VXk3_XR2YTVTfn0VXa|^ zXQ^SUVTfm~VXt9`XRG0;VTfnXWT;_?=cr-GVlDEjVOYSK!U$q7WMX8fVaQ@DiUW%= zf!H9i6oz01O=iDajH$O63pBZkI2afhia0?8s1PUu<)Ly;H*1H-RCeNd(^)=y5>PtPpT&&f;5EGgE_Nlj19OVQVZ z^7T_IN>cNRGxPI`_4D$JONx?nGE?(PAZ#cJO&$f6w>aYCGxIV_;^W0ZK`8|aV}3S9 z6vzbP@iDS7R`Ek3Uk|27lj#<7Nn-jfwz9;W($wN)W{`F$21O5u4~`-Y1_p)_h8o6Z z#uUbEmLh=~#ypM`rW(fC40D-knL*K(#aP2^!;r!p%%I6qRfd+@6!P;F67woi)4D== zW=RGjon|EFrQ~Ghr7NW67lE_2fgw2mgGv@dBe;PWIlUN?Z$Zhn2;}BpjLLo>f90g+ z6$yh%RF)!9P=rc?2vGP$v6m#K$7iQjg5v~2fC8^bgn@y<6cmaeV;I<^7^@_p;f0w1 zm~OFxlYNl@0|P@c6Ew^~6gvY011kdq1327_7#Tnbk|Bkml(9&vhA|72Oc}};i=TDd#w_L?2!R>PLUB*{?2oXu49tA;IwU6P@OrHrBIR|-chD&= zV2$8d)nvNGq-Su8H5F96gGC?&D6(&H+2mvvmn7%s7TEbSFfe=u*-)hfjqlvVlH`ok zVm+Ij{N%)(Vmm#A;v#8K!N34cY9X2e;1b{#Q)UXdIJw0FDk+P&KuWj@N|SOjlfelM zRKVQgN-j!GEJ;m?Pb@(%Y-B)b6O>qQF&C$n++xivNzE<3#a@(Jkdv64s>u#X!Lket z3{iq$-^6F8q~?`mre&rU6-TkAfjk(+1E%63SviUu?1%WY{L;LXB6*Pcpb`iv0NB9_ zQj6_C!D$2XKBE{T3pV_piHYeS3o{E72crn15EBm*2NN3`3nLe!1S1P02M9A&@u7y? zN=8V=K#xCofij7KfgzKj7MvZx2~whlA&a4gF@@0vlr0#+VmdVpS)kZu0*gViiUTN{ z)G($ngTOyK5vY2ZaQ&_-akc^W7$}}~MDXd^IR zQi~x04~_zG^5ZMXkIyR3&x_Ab%1TWxNdrZK0yq*t0n5dR4YD!vFja{{0~%GoCWjvs zXbOO;guKMu)cE*YT=DU_`6;D2AU02Yd|_!~4pfFcK0YNsIX=D!6eG8oi%W`%*g&b4 zIWw=MNCL!S0p$;HnOFoW&Tg?J<>%)VX@R9uGLuV+^idNP+;2so5)g!o%@`OMI2c(3 z85p6EnSq&sk>N8FxJF`QWP-r|Ow3G-Oc3%DkDLIffCktMjCL=`9iT8Oc0p?QrZc25 zrZ9rrv`pRN8x&?> z=YeWWP=vLBGCBjOh5qE&|zJWC`*L z$WBnM9KjH4L3+VC4XhO$ eoJa)7o?9F?kOIUG6otj0NatbXVG>~GD+U0pDSk8n diff --git a/nostr/__pycache__/key.cpython-39.pyc b/nostr/__pycache__/key.cpython-39.pyc deleted file mode 100644 index 28bd3ae4e1c229b4fe7dc86d4e7bccbf3d79eeb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6417 zcmYe~<>g{vU|`tg^DOzV2m`}o5C<8vGB7YWFfcF_pI~5MNMT4}%wdRv(2P-xU_Mh6 zQwl>0Qx0=3OB4$uNRBy&HJ2@lEtfrtJ(nYj11!dp!DCGLQz6sG0q&}T#+adMh16=6s{ER7KRk=W~L}ncZL+6 z6y6qw6y9d0D6tfgRPj{tRIwDkIm{{iDFQ95Q4*;v%?weJsget%QUn(=rU<17w=gs_ zMoFhI1~X`iz6ANvPm}Q$vzwczCi5*e=gfkP)S_Eli8<-{MVTcTxy83wbMsSDi!~W< zu@@w!q-5r$Yck$qE6zwXGBtb2$iTp$$#{#)B{e5CJ+UM+KTnhSmY8c^a#3YLNotBq zW>IQ#iEnCgabkMvEmqgE)Vz{goM6g3GcN^XP*Q4ghOtpH$Q{U-1s2{h3=9mZ44^QM zVoGIBVN79~!<53D!qUPL#gfXJ!a9c$6nZTzQEX5iM+#>POB8!5Ybt9hM+(;*<`nJ} zo)(rU&Qz{c))d}3j46C6{4Ffaj8WX+Fc7%K8Bm&(lbP(DTIr|Bbc?enu{=JhvLv^uaSi}zs5~f=$#i==IV9rX0 zB4GvwhF^aAp~b01#rny~`stY^`Z;+?nI*-#IjQNXc`5pOP`-X@MM-L2ab|vAv3_2D zaY<2fPG)Le34{$Lvr{Ye3My}L#K&jmWtPOpgKR7Yxru?XN(k;3J(%=L#v%a*28Lu% zT){j7QVmMdU|%RPFff!bEMTl*$YKHo@IvNV#uA1F%qh$@j3o?NELp4znS&WLS^Qpd zFfcH@1nIlQl2=fgq{&vq%fP^Ji#s_#uPn8w1mq#Gmv8YxqBTA>FF8LY^%jRKh|bJQ zzs2U{>g-``w34Yvh=GA2iVvzYH6(H> zK=BsHiy*Ioy~V}Az)-`G#jt>JAww`jksvr;AkJgXNUd1O2zCO*Hn6>5E9Ds&7{owv z3o?g+v5FUAVMc0&Ci5+pjKt!MTg=6o>5yP$hJ`5u0|UsJYzzzxVEgr;!I}aNSaF6F zriDzk%r(plm`hj|u+}gxWCYVp3qj=v(?XVD22Eza&tNZvXtLenEKW@>FfujEHZ0-; zg#{>n)~&Y&0LA3`Wpk0C_lu zxt6Jxxt67bVF6POI5RI~24&_}CP{``)*6Nq<{H*!#%55_#9F20lb@KPkf;E6g#yTz z3YjIv3XrJR2c$V3*%w&L}Fl#gdX(l6Z@yxF9w879XetC;*oU@!6@B=;6l+az;GJZdp)pfjrB= zEWjwnSS1X1svca8CJ!j1<|XE)#>d~{ijU9DPbtj-v3cU-3riDoATmWDR~3nZG81!g zNfFrfMWCd3izO*PKc`3&B*UGYlUQ7wn_7~QpHc)0RwS1p5-=#SfN(Jn0|NsGqX07> z3m>x(3lk$a8R0HyZy*)4De5RiEi0&~O=UwAw#|%D?5S)i9CH{`I8(SVYwM@D`s{sPEAJ7&P7_FV9*BV*&WY!FsR$w|K=Uam7C?nQN@W5{5%5wB zRG1P~M;3ufAxL=yaw)WmgcLnsXG(({ECV7y#Yd4Ghy~8QU;^ZHaPBt)l`Wt|2(I=7 zk(>-E{7{?4^;tcb%7FlF{p*h zz{tla#>BRhVpeQvtvjEfw ziHBB0>`*C9NE^N=9u!32gbXIYshJDr;FR28P!a~kBm*N0Bgg+LQ7qm{$<<`O1qz$| z6r`{N2RkT1B!eOpmV!Y&4v=wRKlXtu=LHO)6bwqeDNK?KHOwi@k_=1?wJf!)po$ul zK5N-ZAgykO1#Hli%f5i4h7Fu@*}Q@v13K3A5Tm-7?i~K;fm%uI7 z;)0yalA=gZK!Xw-B%u|7{02^}MPVRq@Wfga4px|w3hqni7Zrg5vM3a!2IT#sK#(*? zX&yL578ON^Fmf>p!IC^P7ZWJa^PwkvG|ie!Mc}>- zI8}gBJ1kXzQavb(gHr{l{RAq}K^bOE?yA)-Yyqfy(e2#&~W}nE>e_^W0*|&df_G0`(qlNx1qs z2So;ixVprrbXaNkSR0e7AMGm zi6x~)sj$)_52OfOP=EQ5Mpi~aR;FJxD6=<2xkj(^ZRWX8_ z8qg5F#hPD|ky?bFEZO4YQw!tct3j>+8OOj_h1{rw$Z9hBX^IsYgM4EGB1}O9I7UHT z(;^EH7t}B<0(FYO%~VLtgPLZLY8F(D6oKNe2%I=TNgooV+#tQhAOh3`DFTH?Q3Z$# zP6h}9lpu;gxlk44QcydYgHec+iBW(J)Q=Tl5nvJG6JQk*5?~cz7hnae1dUr36s4wR zR@`DME=^0z#L?n|=N(XV)i8i_h6JcwC}k*;C}BupY-Vg?EMaVBsAU4nG8VbjFl8}; zQcDU`3R4M74MQ`dIJjF^!;sBX>{bZT%~(_bQ&+-L!`RHo%>e2A)i7o=6&Dmr6c!Xp z)PUNL%zjnot`!BT$t9^N3W+5OIjM=oB?|d@sS5dN3hEF)s4L_bDX2sIp{|fvlwO*f znpaW`?ow#7-r@>N%qdNEEh@?{0(%~k|3H=EE#{omJWb}JN>Hd)fe3IJg&MTC_;WM! zQsc`K^D;{+L8BY>pkRg+#{!HT%xp|-|CyL%{xPvIF{&^!F|sff)iN+JRC#CSl_+SG z=7CabYKlT~Mq-hImX1PleqM2j0PIP`Na96M1g{vU|`tg^DH@rlY!weh=Yuo85kHG7#J9eOBfg!QW#Pga~PsPG*b>^E>jc} zBZ$qM!<@?!#lpyt!ji(8!4ZsfuV-6h9RDz zhN*@jp0S3xh9RCQg&~+>C8M7va}fsv149ufhycZjCd)0B;?$fpG~tyDMSKhl48Owl zLyJ?3iuIF|_0uy;^mFo(GE0heb5he&^HTKnpnUz*ijvg4;>`TKV*R}Q;*z4|oXpg` z5(pbg=0ZX)z92t8N3Wpr7Ds%1W?p7Vd^{(}&1@jgFtRbSF;z7}WnVbrbLFQZR$@zIDsd*(uTp%mC z85kInK}j6sOArRJLDqxg3*=Jd_yWaL5f3QUF%^O05^RPha}h7dD7XN`M_>cXlA-R&ZNDyR_5Qq>45h5T0q!-Cdgu$W=3=AL}VBrPgQy5+nu6Zf` zX~8A=MX4#^*e*r{9U^5GksoZJG=&muZ~-JQf;?u4cye$k-94UM${4ESooGAh+f-MYDTq!~+!YvF@+~A@Hq+cXOw1ov)!inAD zh6Zy$etwRhCL<((LFF4LO@c6p4NsRk3=9k<49yInG6YI9L22d^7O*&L2^*MZN2FPf zB9H;M*uX_t@h$c|aMmck#gm#}oEi_~F&C$n+~SKb&C4t-O^t`BEdmA1EtZ`8cQ>;nO?(?#jt>JAp^`sOhr-*3=FrJ(^E@|K-CMn?VRbUC6Mq`L$X^G z*>1QBQf-z7d07QSV6&MEWG*CrHIb|qL$?~DgjBmh(O!hpZhny6NC^y-bisL$fw4*& z-2q7IaJvGO@?c?~!kEnx%&?NluLu-9n$RdeEXh#I zR>D%lmck;*P{WqO3MSdWBs-Yo0F#`O49#q{>@^Hoto?S33^nXoY&8s7>}8BaJv9tj z91A#0xN6vISZkP?nHMrLGJxb3aD!BVc;O5w3@i*R49(1p42ACu8HyJeFff8)Bm*Nu zo)g$*JlRY|=V}?K(x0aQR>7amRP?TfAxmHZXNe%H3Q(!4$puMv zMWEv9C8%rwHwtdC6_h4rr&iwLN-j!GEJ;m?Pb|5`lAW2Ca*L%TF}?T}b8%+6rqC^x ztm6Ej$5 z0_T-f7NmkJ`&*2ukj5t{&q2yFaAm5*z`$SuN;X>Hl97v%gAs%|7@5EgMNngrjgjpa z3kL@y52Fa99wQf{1S1z?6-x5LD86~oTR)&mr3l;v0+rT9s-W@>RCX4rgIFNDi?l&3 zP?=H$audXfXpWU+U|;}+Q8B1l#lgtOF2Kxz1dBlOn!H8Epb%s&1a&YV^(1FWMp0^F zN@iXg{vU|`tg^DKETBLl-@5C<7EGcYhXFfcF_D=;uHxHF_Mq%gKHq%bx!MS*xs zDa(L$;f&^Y(|)V2?hp+RE8+V6ox3K6vim#6s9Pa6y_*ah`w8b z&N-Q>c_qH7#l?x~sUejGskc~N!(9DBqL_nR18=c9`}haD`f0M=;)svWOUzA;kH5tg zAD^3_Qknx|^Tfv&mL}#vWQv#=7#MD`2e}4@x(0_7fxNJip@@Tl0Ydx=*AFdDEh^Se zPS#J)EYZ)&OUf)M*3C&xPt8lw*Msu)Q!7eR^NKU`^NRKJ@{3D~lEDsyu%Tow#I^Ay zl?ADK1(ii0&w_9<8v_Fa2O|q33nN$zBUD&mp`wE$R8rYe*;6@ESmrRLu%@uJurxD9 zai*{bGiY+$5(rAoNvuQ)D2R92{QN^aon50?T>XPxHJNU)fE;y;tthpmv?wnb;N zLHdihLBTBI>gN*g?-m~%;veMd67LF%vtUieA|8-3c$gP)g4A+k7RQ$*=47UTbb$g|SK!-A{Tjm42FBMWE0sVg;E83Rkdq!FCt%fehs-E=erOOwLU$$;eN+#avuc zbc-b^KR>64AEX1}0x%2Y46qMCCKZFc0*NLTCMHI(xSu8yILg2rM4ExHK)P>n*g#U9 N9Vi@&K>@+X3IIKLv(Nwl diff --git a/nostr/__pycache__/relay.cpython-39.pyc b/nostr/__pycache__/relay.cpython-39.pyc deleted file mode 100644 index c7b3818f361ffef0e459ada34ab3125ff8250e21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6081 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 diff --git a/nostr/__pycache__/relay_manager.cpython-39.pyc b/nostr/__pycache__/relay_manager.cpython-39.pyc deleted file mode 100644 index d7a15a0768cc1c14083de6828f248ed550bd6e4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3074 zcmYe~<>g{vU|`tg^DMc9gMr~Oh=Yt-7#J8F7#J9eix?OfQW#Pga~Pr^G-DKF3R4Pm z4pT036f+}33R4P84ofa;6f2m`n!}dM9>or3v*mE)az=52+3Y!7x!h6Qxja!kj12A! zDI6)BEet7~sl3h1QGD(UDO@SsEet8#%}i1JDU87knmjK-uJL=x$iTp$$#{#^wJbHS zM3eCryIW>XNorBCCgUw`-_+vb#PrmF{QMkE##@5UIhm<>B~ZbT%7Ro)rdzB*sX2+2 zx46MnKz>eUa%D2eU}Oxk0_;^D1_p*yhA74qhA1YmBbaXSfi=2TB&QaXWaj7jX)@p9 zh>y=p%uS7tzr__FpPQdjnge3<#K#wwCgwn7Rx%XvGB7}hUlIDD#i>Qb`pL=q>6s<^ zIeAH$CB?cqsp+YCDf)U)zJ6*&NornkW`16=eqMfYNl`M`GY~eEECP8YJ~uHhF+H_N zub{GslYxPO8x%)O3=9k$j9@;7?^t0GISs{kDNJ)1Q}2Ga1sDQ(013 zQ(05k<}jzQr*O2eMzN)`q;Sq*1V;`_6niR5Dn|;>9HtcB6uuUgD9%)t6#hAkDFP{i zEi6%7DYB{DsoW_-bC^&DGpu9;MG+e~sEUg~e!s<&3rQyN1(0;YQk!reoVU0%sW`bP6P!MaZ?P4C6ZtJxa1fw-lQS_T zB_1pTGOCyjp0 zLPka;PcRjMTz!kVAiqG93CZd3oB;`Wo}$#;{IXPttE54p4>F&Du}TufMaZf&nQk#< zrrcsrgA@hHAjg0l2Ew4IgNM8V0|NuZaSIt-7-9u#nQNFAFx4>DFfC+aWGLi9gg7(A zv210DIi;z^w*)`|fE=)zED#^agTftTY!S$*Xu(^g#K6EH2l4{Q6%34gj8(EIp1?4b zu?S=!O6Y<-1JVu-U65f&9^k8Gs$l|o02I=g&M#5~B?zJ9oc!X{cof$&Be@=%!<88r z7(k9M2H6aDxIBu(u^7p8i@UfuCq5sV?pOj9iFB3!#;(JY2zbba!k_=Ej z)MUQJR+3nho?3E?C9x>I_!bMOFs@?LEi6qfP1R&7QUk>uC^KqufMXjHT$~WynR)5A z*h0Vt-C|G9&&x|qE&(U~Tdc(;iA5z*JYZwu%kzt}Q;T59K?P)_Du}=ms<#C43sUpq zp@xBqc908-K{*c;#4L;~jBJctf4SH|EUtfOX$4&`N=XRHBA|o<4q6%1pyjD$tYKWh z1PVY%AVJC$ND7DenH3zLuw04F>4IPt$Zj`AN!M~%k_VDUK@~N$*u|Z=L7{<^xWzz; zJBulcxrnQVX#oqQI6?LSD`3F4NWnqEs_dqi=g-m6d&+X#}5=Aj9CmRjHL`kG9`>D zOf`&IOtTqMnCCJ#Gd6)@hj}4Gu?><8OATWd!)%7REMR#Cknb0;E@S{@b8rR8TICv+ zT9lcVnOdw+l95=VP?C|V0B#Z~WELwxotT)Eld6!EnwDRbs!&{-l$%*nl9`vTkXfQo zlCJ}%mcSNz{S`tHi*h1Lr^iqRgw=2U|2#k0>ubg@y`o&d^|W% zZ9q{0s*o9&xEO_)I2f52h5oZJS4m-w60jCcCOT01F?B5HAM{A1hdurob(htm6EobZ+?B-laDK&ph`ZoI`|18JGs Wf!a*Pph}v9k%Nhc5dsC61y}%^I>GAz diff --git a/nostr/__pycache__/subscription.cpython-39.pyc b/nostr/__pycache__/subscription.cpython-39.pyc deleted file mode 100644 index 7bcbe750355c142910a3cc5d6b4c3eef979e7014..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 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 diff --git a/nostr/client/client.py b/nostr/client/client.py index 169ccc1..7d54d47 100644 --- a/nostr/client/client.py +++ b/nostr/client/client.py @@ -21,10 +21,10 @@ from . import cbc class NostrClient: relays = [ - "wss://lnbits.link/nostrrelay/client", "wss://nostr-pub.wellorder.net", "wss://nostr.zebedee.cloud", "wss://nodestr.fmt.wiz.biz", + "wss://nostr.oxtr.dev", ] # ["wss://nostr.oxtr.dev"] # ["wss://relay.nostr.info"] "wss://nostr-pub.wellorder.net" "ws://91.237.88.218:2700", "wss://nostrrr.bublina.eu.org", ""wss://nostr-relay.freeberty.net"", , "wss://nostr.oxtr.dev", "wss://relay.nostr.info", "wss://nostr-pub.wellorder.net" , "wss://relayer.fiatjaf.com", "wss://nodestr.fmt.wiz.biz/", "wss://no.str.cr" relay_manager = RelayManager() private_key: PrivateKey diff --git a/tasks.py b/tasks.py index 00dc987..083c234 100644 --- a/tasks.py +++ b/tasks.py @@ -34,7 +34,7 @@ from .crud import get_relays async def init_relays(): relays = await get_relays() - client.relays = [r.url for r in relays.__root__] + client.relays = set([r.url for r in relays.__root__]) client.connect() return @@ -73,8 +73,7 @@ async def init_relays(): async def subscribe_events(): while not any([r.connected for r in client.relay_manager.relays.values()]): - print("no relays connected yet") - await asyncio.sleep(1) + await asyncio.sleep(2) def callback(event: Event): print(f"From {event.public_key[:3]}..{event.public_key[-3:]}: {event.content}") diff --git a/views_api.py b/views_api.py index 4a42abc..e127d12 100644 --- a/views_api.py +++ b/views_api.py @@ -60,6 +60,8 @@ async def api_get_relays(): # type: ignore @nostrclient_ext.post("/api/v1/relay") async def api_add_relay(relay: Relay): # type: ignore assert relay.url, "no URL" + if relay.url in client.relay_manager.relays: + return relay.id = urlsafe_short_hash() await add_relay(relay) await init_relays() @@ -67,6 +69,8 @@ async def api_add_relay(relay: Relay): # type: ignore @nostrclient_ext.delete("/api/v1/relay") async def api_delete_relay(relay: Relay): # type: ignore + assert relay.url + client.relay_manager.remove_relay(relay.url) await delete_relay(relay)