From 355098025fe7519365df89b37612252d05d457c4 Mon Sep 17 00:00:00 2001 From: zhilv Date: Wed, 17 Dec 2025 20:25:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=B9=B6=E6=8F=90=E4=BA=A4=E4=B8=80=E6=AC=A1=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 + LICENSE | 21 ++++++ README.md | 45 ++++++++++++ config.py | 19 +++++ database.py | 10 +++ fonts/.gitkeep | 0 images/image.png | Bin 0 -> 57244 bytes images/image2.png | Bin 0 -> 128289 bytes main.py | 40 +++++++++++ models/__init__.py | 0 models/ammeter_usage.py | 55 ++++++++++++++ models/water_usage.py | 55 ++++++++++++++ notify/wechat_company.py | 12 ++++ scheduler.py | 41 +++++++++++ services/collector.py | 13 ++++ services/plot.py | 31 ++++++++ services/render.py | 40 +++++++++++ services/statistics.py | 48 +++++++++++++ tasks/water_ammeter.py | 152 +++++++++++++++++++++++++++++++++++++++ 19 files changed, 585 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 config.py create mode 100644 database.py create mode 100644 fonts/.gitkeep create mode 100644 images/image.png create mode 100644 images/image2.png create mode 100644 main.py create mode 100644 models/__init__.py create mode 100644 models/ammeter_usage.py create mode 100644 models/water_usage.py create mode 100644 notify/wechat_company.py create mode 100644 scheduler.py create mode 100644 services/collector.py create mode 100644 services/plot.py create mode 100644 services/render.py create mode 100644 services/statistics.py create mode 100644 tasks/water_ammeter.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..546f5da --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +__pycache__ +data +fonts/*.ttf \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2c76d9e --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 zhanghoulin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3cb3ed4 --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +## 城科水电监控 + +**进行水费和电费的实时监控程序, 默认获取前24条数据进行绘图** + +### 实现功能 + +- 获取**水费**和**电费**使用情况 +- 使用 `matplotlib` 进行绘图可视化 +- 使用企业微信机器人进行推送图片 + +### 使用 + +- 配置当前目录下的 `config.py` 文件 + + - 手动去 Github 下载 [LXGWWenKai-Medium 字体](https://github.com/lxgw/LxgwWenKai) 保存到fonts文件夹中,或者使用 wget 进行获取,然后修改配置文件 + + ```sh + curl -L -o ./fonts/LXGWWenKaiMono-Medium.ttf https://github.5700.cf/https://github.com/lxgw/LxgwWenKai/releases/download/v1.521/LXGWWenKaiMono-Medium.ttf + ``` + + - `UID` 获取,使用支付宝进行扫描下方二维码即可获得 `uid` + + ![UID 获取](./images/image.png) + + + - `USER_NO` 获取,通过抓包获取,使用抓包软件进行抓取微信小程序**扫呗团餐**,对响应体进行搜索`user_no`即可 + + ![USER_NO 获取](./images/image2.png) + + - `SCHOOL_ACCOUNT` 这是学号(可选) + - `USER_NAME` 这是姓名(可选) + - `WECHAT_COMANY_BOT_KEY` 企业微信机器人 key + + +- 安装依赖 + + ```sh + pip install aiosqlite apscheduler httpx matplotlib + ``` + +- 通过 `scheduler.py` 修改监控时长配置(不懂的请问 AI) + +### 📜 License + +This project is licensed under the [MIT License](LICENSE). diff --git a/config.py b/config.py new file mode 100644 index 0000000..63a677c --- /dev/null +++ b/config.py @@ -0,0 +1,19 @@ +from dotenv import load_dotenv +import os + +load_dotenv() + + +DB_PATH = os.getenv("DB_PATH", "data/data.db") +FONT_PATH = os.path.join(os.getcwd(), "fonts", "LXGWWenKai-Medium.ttf") + +# 获取水电信息配置 +UID = os.getenv("UID", "1111111111111111") # 支付宝的 uid +USER_NO = os.getenv("USER_NO", "11111111111111111111111111111111") # 小程序的 user_no +SCHOOL_ACCOUNT = os.getenv("SCHOOL_ACCOUNT", "1111111111") # 学号 +USER_NAME = os.getenv("USER_NAME", "张三") # 姓名 + +# 推送相关参数 +WECHAT_COMANY_BOT_KEY = os.getenv( + "WECHAT_COMANY_BOT_KEY", "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" +) diff --git a/database.py b/database.py new file mode 100644 index 0000000..a4e3885 --- /dev/null +++ b/database.py @@ -0,0 +1,10 @@ +import aiosqlite +import config +import os + + +def get_conn(): + if not os.path.exists(config.DB_PATH): + open(config.DB_PATH, "w").close() + + return aiosqlite.connect(config.DB_PATH, timeout=30) diff --git a/fonts/.gitkeep b/fonts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/images/image.png b/images/image.png new file mode 100644 index 0000000000000000000000000000000000000000..1851d69cb2d68880476288a24b1a1c6f71c2b896 GIT binary patch literal 57244 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

tBV2OtcZ7IaML&|9r)6HBNI8g7+!% zwnp$Spi_t@Bn~`lwN9rSy_}AcQ8wZ(H^a0=eL=IO_NVa~_wWFR|;Lxh4ZsbotKpMnlB9);1d>oN$zWZpI$v{b zF^0mpKIOBG!b}LcnuQBYN3=friunb!)VQ@oP0x?5JeMmj2t{Lx-@SDOccSs)i7Umr zPVLukZ*XyOSCCK!K}_Q*J+r*8GC%V8i6u8~j4u=AJOXlb#^Y1V6heSDDI-Tn%CcG(@5)#@~+9Ig%#P(Dc^-YErCuBTd8tI zLGtL#b^nY1meg^StE#e{hpAOyoxScKudlP^yFA03w?_@%uWt|>NJQ730!{dQdBWo;e936D#a=9 zpxKRa;xz%K01XQTeWUv%w)JkV1iU+DZ*g3OpFa(=!**1^mTi}{7u!A{DE7%asPDh) z>TEG2>-ZR_S$sHzsd>P;gW!R;im$Y%prs0z`+jl8OiipZeF=s5xr2)a)S}36_Oq^x z8VzZeQZ{h(o&j@_{`hWqVvk;fS|Iy}7C>ZvsyJXgE4tS9MbRmH;^IQMMa%o5k*AN( z;1usdptqfS8Qsdt+FS<^OsJG_T3Y#Y`(wWbsxBNA1NUuZcBl>^@A90o(3&oCW^Y9J zos|bF&*8gONN^;Z8TImz=|&qGn^pWPx~huPFf1E?9lVU^yLg$n?%Ok~`-*gxMq+aw zQEnK8d1m#4e(0ezuozX))W6)gyeqYbVg;p7<>EfoMA{A_j1GSy@-vUj^29?mHftb?S!U^<{l@6|q6oTp~v7Cx+H0B#I%h zJ1YM1Ld9qYYwL=0;SWy9Jl)8rR$4myj8jaz$lM~KyiPB-E zGOZ;VBZaXQ(?$<^Iu@mD$f}_NQtY>jbtF1pJXSP+#_MLZ3~q*9>eGj3KnbAKl|hV; z*R|l;L`^LmJ=q>qOmh6h0I4}@a3s3B>FjCv6mRf|Y3m<$0Ebl+d;a!Jc?{aC@K`&e zSXzU;sL9nemJOmIYOv2fBzf#0+mNSLqvs9YP!&C(&E>=2rhV-7dhW6iGmYPEs0j{H zhRtjj_>}bIjmEbk=D&E@`fgZHln=u!LG#`LG+d}BOy+h)tllCfyR922){vNA(@wNm zz50XWktg7*k8mpjdGl#`p}Hx}hh)JLcgaoO2_ttMzAF32K_8vc)8O|?KtaqOC?VQ? z1E5Y(o(dD=G7MhIj^SvI?rzjgY@CHag2@g!yfk;TDCRLe?0ce9WAy$2?n91>E2wnD zSm5vZv{1J9bDNEUAlrndvXh^#8Fn6}-B#&$En%5EIEsjhh(x6ow~r;h(0lbBnIdKg zHyY<)4mCvwZj)~DSxsAB47Jukd`H)Q(^=h+Mqfm65$iH79{PgeLbQf~fvUaOD_L>* z6jL^>;&z%s$A@ZnNH~lpbo&Hh!dfnw!TkseZY#7UOahj{Qh}mo#LB9~sG%vvk$p!! za==;N#Gk=~A?7ab?q5?h(h6{gk^^*(PEvoIYcYy$FV9Cmd6;*U*-RfZ1fLkZYEP`i z>c(Zc7Tx>zPcW)%t`XMf!RvFl6z-7W?ziWKnQx+mXUGa#sY!b_5vSD*BN9%l@3~i% zQS%oryr-@jSFroM`U$~OZ$dNyM*L4O7%5E=nb=H8$}Pc5P*x`4da^$wXQymCN3}z5 zez*jGkT{Li;-`qZtm3JGu0i^MR{Iwv;NEvH@k~=_DXeu@w zs*n+=dPg-zRSSwZSZCj-rncMw;6wvMZMu{nIqlAf$lj6M%d_HQztT1P?Q(bhmZKC{ z(^BEO?@E=c`>k&6b_%hqyPnrRM#^Vz=yN&hv{Oa#p+1R0(^WedWAaa+O(K7izygc~ zHD2gPbBLRr(vcw`b6SJX{9)4s*z00*(ABy>nR&;U55zx9YE%o)^0A|(N~wc53uRRsxVg*RtN>`7D*t-^U|en$h9Vq5z5Hah{+Psv*FzHBx(PA!%^F? zh_SKW4<9|+El`74RIg$cnhpuCh%buefl!xCPHvuDMP}|qYG1^tU{qd#V3nDrwr8YN z8^BEzXouG(r##SAgTK>N-y@E`tuJK!9rG zlX0qeG`ao^RLIm(TXfIEFR2@3qliySYsC@!OX4s&%mXDtKl#z zD0FQ6oUsVJ4WXc4rCS=>SQ|i{z6*Qk82rb26F@YCTvOM2C*)`h;|U`Fv$J@8XrR<1FMLHCnBr%R?qAE62()^o+76S7gb^rn)4FlPc6d>YKY!quqWGjCk zNS|srhrmU_vQn~h-0lB(6J7x=78^;BNc>seRL&irkW<4cLYh)liq96>q?@QS8o0*+ zytQ1rB&$_uqB^a-h#Vg=#nibF!$)Kr9T0iKjy{;u9C>11n!O(Rdv!KU_o49!`6ad# zAE$l&l@jQ2a)6?{5Ul2eNHl_nQNk5eW@5EnABgiz+wpyId_(nj=7=HxY_NW78} zydL~2h7?Vv?4`GcKQUnj*zgEiX5&g!+=HgK@vhsh6>T zk`L1u4!Fr-2*>DU_U1AD_Ifont?UO5PjZWW%{HhiKd#oe9~=S|LwOlw3gB+DqbK#H+3TTwnM$9z6sy-fHae0 zhC&{`0~EiF^4E|HW(2(ORq*Q=FS$aH+Mw^jDpy}$C50@cMCEoi+xHX;Ka3m`ME&G_ z9(D&_fpYtO$JecxU5V@zXFj6mVU(exxpz|5P$!AWKyOM3~Up;=*R&uc{c%q*@eDk{c8+({XosVi~r{M&n@0Lk;~~8_Z_JWRKjU*KBWp zH2v<*cniEC+*|Tv_#Ka1xr*m|g{KRaDh1R0daFpo$65uh~C9VH$a?nK315V*`vqF%?X81`w`;e zU3Y2h$e)#y)2F+4u9#MhZVlgf+toE!PN&{IU#V@Wge>gm7Pob3_URD^ZA_EmDihOTuADt>+tJLuCN*9443Cb$i^*KC%D9d7 zYLauZpxEBpU;j4(x={L*?UmwfRpg!N-T(3NF<@O;-aN6eHQLpEdh2h>qe**-vnh$% z089S^a1}2M&)sG={CZS!BW>o74xd>LnH-1Yh>C)fYaJbtvA_IkSY^!t-5KwVUbgY4 za)S=$O$M(wsG|1!sM@+qwb@7Fk1bu$NvZkXDaUN?g-8SWCJ@-08O`^PZTbgVnR#*M z+}z};ID>&Gy;E-Ao|KoDxA&93qHK2e^4lLx3Om$(^TOS6%R4HOD@JsjgbAZj5f79Ton z&ds0WyECedZk$rS=jTJKH{b271ZVVbp)$6%&lE?+^tPG@;g;S5^6M`EJ2p}R-`m_2 zQ}3^TXIM;eYvuUpsb^}>qNX)`YW|}8-?ffQ9O^u9Q&;P$7x6f~PG-N4H$AmaEv7sT zgiF}t`1*L?k|9kz>>FtUxw~Zx2d)S|{T&v=3L67EyYS@0x;w?E(~e@xFYv0IuGnyo zKW-Jf@ql0Te<+-0UIZ%vm$-SM=hu!t)BB!I&1|lT4f5G?z_0u*tlN{Ce(p72Aum6z zdVAHiPO~wRHx--w!rHd2{PI0Jt~t@;WcKHaY9G5o4yM`JUVOXXDr)@n1o@Wv&{7{2;%J5_0g8 zb?y49wW!Gc@V)f&>l}1S_?YnuCG3+f{lDP%5{|x{aqfYou8BswVeP(G)^7EyJfIB6 zMu0NqCi$VN6PH5nm41Em0R0G@CnjuA=FaZLytVp~t+W4_ft_btV95KO^RBSAwq(T;6#9g143I z)syG$Jle*8&h*?fo29Q@3v;s6^vRp@^8P6=r}(5q7PQd%jqpkD@|$H8qArl+R6Wa5 z25sqTjXIp&C1<+sUV2H{eRRF@t@XmjF3z7uciel?@r&HJ+)4A>mi+3b6lea_HSPC% z*Q~kqVTz`oAGf#PXy{Igm5>&q>J7bEC|^E)Z4E%CZQJ-(em*MHp{>&D(uBo*Z)Ckd zv8q?UPR%D$vo4fPWm(?dG-toJIvhgi{^SZyL$gKN3 z-MxtEmmbGY=jI=N2cm=<*Q|K#D-8wif`N+*N7x^)c{BA%coUb8Gv}vTAIvR&eV9_b zVAAOoT_rC^y5csq&>r;*`*i=sOdaU2r>fBG36bnewU3MZ!p6Rb5B1AgF(ot<_X|XN z2;67N5+q%gvdR+Kfu!pYR)*|AlxwL~!JADr!}cKtz*BR0)~qs;`c3@-R`RO#y+y?+ zS5xUy`X3Bm{#HOof{ew3QgV++=~h>7d0n|4by3TIr`xTv!=>(}6}j%6qbq6i zWQP+x$j6ubW?-jR!ZL{Wb?%k7;AQX~yE(2?Z*-xo3LgYuM_!z=xG&NgFKhpjS(jYl z`S9K_#j|hQo=^WWdYgAo+t|{d?e!kH#nJf=i6h6yefz;)BqSW0hi8q+-&v$G*g7}Y zjOo#G!_s>j)>YlUZCiYHeSB8oJ)rA7P6NNh+V3Vq!tr{BOVHy*ZTz`c$4@)M!0L4b z9D;i<|NRwEXy+d~S=y8-kp_;^&tzU8B@(~+dp>Jjccrqrg8%S3MWJ@)YXsU zkAt5`)#98aC*SH`r1_K)N5DFg3lomdeUnDr%~r@Z6BPihgQE?jNjobv^L$d=$*pO= zuE9Y*zHd`pe&UK#l6A@PM9jl%>*5Etlkr6~QPCHVFTwvzD?fKBrl73#fTtg~D!EfJ z1uw1o>2F>gTr>e_JSwiGnM={kfU0T0!vUe@P$dqD*cUg`_hb%$6-MP7QSy&cZ(|e|ZG58O0_7pz&bFN4B9;>soXxirsP}JO89d<@>%dC23Pm zg6g7cYlN_&1Ro|gYiyiR$Ynz+TqO$(LF?-}`9$%WelZ~|u+&zHx$vef{@i9#Bw0|tJ3{?)hm6t({RD1@SDtY}{HBx)Ywi4W zFH3nAb4XFhUM1t$&Dt@64j_jVRl_?xGNSRan)TWOP26fKxkC;qw(3RVUzkH`B!ID^ zCq!!S1ROajXxfU`Q@oP50+}GCQG_t)e>asb&Nng?gAGNL>?y*sEVY);G@63PNG;A{ zxe`i@6#JLCzePIA_T3Jk;1_(f4zTZm;B2Ce7v>m?P)XgAYP|jrf@i3ty1uNI-LeG) zYg4tIP08&<&T;wA;a^p zzlt$MPqFg%3;U|=I!K4AT*qz?cI1YtxUuoCp-ExHpl-AF4QxInJjpv^)|k&bW0M)4 zIUv_QcNAL9swIA?#8)cau9DlBF=-ppto5v{B`riK8!WeH%|0t0ksd|d5{W)$n+Q38 z;>P=JTvqU3@QUYqde)cp3Ez+5RL&u2`2+$WWwXDcx8i&nKPj*_)iUZwH~0>-vsiwu zun2Oelx}UWMd^Ju>+yw*6~J0bsqy2DjV}Dt_Pc7{xfmJ{5e>sl-%W;HdLQ_U+xCIzk{5`k>{~pIt5NN7eH5x)h(h0al zMX#}zMa(LHv7b=U&Zw`@XJ`hs7voAT8HKu50Rj|~0+2%=M}wBVN}PuVBKQK~1(H() zm97@j1EbaLbioqjW5H$1n{Auip_oK|xx?Fh(-oEc39{(ClS=sLW)$+Xt!k76cm{2_@5qh%74;+~|yO3d%NSH45CF}TY__4ecOEOmM3OmHM=HW1* zERsD)Vk=0O%{5#H0Rpgayb&5j8(~8x$`y)JVQwKU>%J&N0$T({II0>nlz#$WoGHch z5Xiz%;P0T)unI}wRh<*XPOT@IW|L0O?n=EU>^dVdg**d7uAB{&#Sf=5W-gE}8HAnh zy)sf|&;X|4AcP%!YgUj&afBd8RTa*1VF7s_oDjD|bfB<#OiU}H5y8eGoy+Xz;l*zo zNVMGXr0a<3U>>{-K-^NPt}lO_F1tf|GAy|o&BW?Pn1vEzu_s56r6J=5 zu!b!r%n#e)ndNTSaWgQOgmNR)7V*J^uWMQ?BVD5{nyt35 zzIOL6+nLj~02W242|~vvMuuQ5CD4fFYQWtjT&1#PqwfnE8UreDBTDEid?s0;%-V7f zQ#}peb{5=1Nbe8WLESYTVOcOPE!_yECfzG{XHxRi(~`02hV?DD6S=M|c@SKJKIu^^ zu_S=du?WA%2ZX65^yv)HlJ@LDnZD2gINQRfqC6LVY5aZ8wU{u4I|c}_FYJ+#kp#D@+So02o!46 zN+SY~wiux200_ZUr!o+%*Cz*_A>T~`+XloqAr0Om>5Om~CF;(SW(3^qN?o3osp08R z%2oE1K&+ZuHAm@yv6Np(4A-t+{Z#-e3Q2RL$a+BN(MUe@iOxTCTBX>83zDh>aVW0S z>fTdq0K%G1CR(D(j%e_>H-k(lo5ZC==YbAm;SP8bQL1>?Kz^UFwG)V+Op&A_KR5tWN}Pnbk6kbn zpEV0}2--3h@Q37rfm?4?y^g9Z?l+S9DC!HG?C>UT-rTtYe#BvJapm%5O|uaFDtP`R zkBh({;sDqeZhkm4D*Y12h~PE6G^I-8Jo?r#N#>|el@Yn&i}p&?m(Bfsq9MqItiJER zBH>-Tf~;pA=Z?aqv2Xhv{N7e!S{vms<%go%$*JIxT?|yY*j=KfY1=dV5t5a}^-&%k zt&CtEo@2CcX~^&pq`7l->3C5Z)1fT!j?Lsu)SN}=Li`CJl8`&m(EYHV$n8U=xvviy z79r;i$Og1MYDG&$(RbwtNy*}pOF+#KEWf3nW2mD$b+zrPl~*kLAIqQF@jseJRVI{YQw-tE)!On5ZfVQglTCs4i!EY0Z)pcuEp!}Bb5#KJ`6$8XYTMxohS$j z7+Yuq3OWXL3PriuCi?RX%qV1B4ZJ-_snpLTY;FGIjJwT*&uHc^w}qlb`w=Vb9ik2u z!bxTsoje+sv2JJS3khk>;N~C&@YJ- zaogcd6~M*hn7Y7h6zSV(2D!BWCyQ>!8hpze#** z7>~LaGy-;kzdbITEjH<`6FDVr9W2Aj+;gqUfK9dZPcU7Ia)^N^wMPVMLy00$v7dKO zdwV5q&um2Vorg^A?15I^Ao4+InY*}g*BGaxPIxAiBudI&{1mB$Flk6zLh#n`Xcl6~ zQxq#U&!FZE3|N>cIGdvPNc-Cp8Q#LbA;69lLUZIe!MdT9!-yOjD#EH4>Md&wXsN28 z6poD)RJ4PlOc4~B> zLaYB7LSBGX!tO$R@NMCH(d-lwa0g*6nUG&#_j*#FX!NbP*^F9Wj^dyG5CE{6I28#- z+nd7TBDh)tZlT?SyCd_~7|&56>H2RN@ZdE?$)o6<}~&^)>&Ms#8E0s?V(Bsir!egb8d&32VXkS3_Q z190N_RH*X+e2<#9o<|rN;nhNsfX!ocl`#2YRGO+=37#wubaT_GHsSv`oxGdYxe8|I zc_H;-D!&6+I9mjUAiGRcS3)~n%){8u8M zbed!v3AFN=7o~D6J_D2Bx<6 zs>F1a8m~gQ!oxT7^HK9byJ$}oo9exZ{jQSDguwiKvi~Rfa({lg3`TJ){}InJ-sly| zS+@UPx|SE7e#j+ka@l#st@YY*ooX~n%onpdlOQ06YPlaWrDKsaNGsBr%r=%lhdMh$P)nMi~ugEMmi8Fmj-3u#uOM z!5F$F(0YROqwU^o-vKBDIb%)Fj7UQFLITCxy^cw0&V%-1abWRCp-;@6&!qZ;G& zj5Ct{rDs9GW8=~ZLT?sK3kHd$V~=V68gc-Qg9?e6QF*$lgkBq!|33q*6*%5gLkG|xR0E=nrabrs7@m?uN8MI8pZq}` z+Tl$(Tn)a@9@Tu&J4cYafYd$aq20LpSEbwb*Y5m&YLK6$M*b6jcFzGjGwr>**4G9R zLCk5$)fcuYKk>QCU}jzM&FJAM%-;u2KK(4ty&tzSdpvscWK zgLWO7H4tw|m?Oj_C3J#CMuZZ;x77CON8fMh|KWI_R!V@it^OsxFzlW;qm%EB=!Ip& z+c?y@KR9tIyC|aCGSX`6$`{7G5mx%NSA6oRFP7gqmfg<5v&z!z?wb+0{6Y;ZPtzil zAMp0Qurs~zep~%2%M|_H0SjK6kP=Z?^-g?DZcuIM(D*F=q-%6bhZR|gRZNy!yHWoF zz@L#l%VDtIfX6ca7&aP#j}yw&_Qh_jGS*kpe& z8P++n+TJ!}62)Tq*Cs=591^~mZYP^`H&f^E?OXUgbKW{2?JF&F)bv$zJDV=#*%LzI zC@yovkUQ7I;rM1_`X0uBw#vvClV3AC>=Rcca2QkUW+012ayEm1_`Pq>rBxG=xiH_uA*INt|pW)tp2|D$Y6Xd-1w zMEpZq*+F*Iuco=3+;Cz_=ak7$(9h$<(q)!PWXS135~(TX_v$n*N{!FOpYJ zig3LD6hC^}Ds}@;VBwt=oq`U<{e%DR7_0j!4gSl@?B2-P`^n+6VZ)|cKC`&>DS3U6 zursHsG)Do`ZRWCNKdf@F#Nxa?t+IuJ*YGZQGmmJ)q2>Kb&$r0T{>iTG`7LX^&BkP? z$uom=)ndR`q1-tKqD zdwetZgl6$(ST3*JskM*B$IqVY{(^tlqn*QIoB8KYLpq40CfHZn@aqbBOzq=m} z;iUF$elT}DvPtcx>W3<8zWIQXZc`;x$^EMML2DB%?ey(!9dvJZ2+^NjdNV!wN?X+Z zOno{P!T3k(o!37>AE$YJD?JE>!R9u|m+YdK$>FWelj z-B%WO7P(UvpLAWnq-alQ&OgTM*Ki~@mW~zIkW*+|si~Q8deN(6!afE(t&|heNMoI> zGoyC68FV(xHhF2Q!5ib_AKAv}3^SJ2wsfU3zfN0V%Y+JiKRbHa(|5QUsw51lUbN<$ z)e7}BMd7QKG3NeZzr2$sQ+ZV17=fP1E%PId1Vzvf#~%3XKf_4o5CLfVL5LewJW5KuvW5fDa9#`mE8;aQ1i#B71p z$VpbOXuw$#>1djo|2a7GU%r((mUd1J#;h)54he~-5&f$}c6wFgce?%XD_5?ZK`{B< zmg|^pi(E^lf(!}oYF!t2BG2;EuIrhC+~LvWy~nD)h)0RxQAYo*ET2RAYH^O(J@o3(wZd{Rh8p2N>V&%XMJGq z^6AJ!jqz$@(EX=W9_<%bJ~?X^e6|1PAG7|V_<3rrX=d#04Zd4I^H(kNeko$*$>fCBv`(`xMN70|ole zZ=&)*)z7n39_aH>q5qFjrT=_<|7{+sVWa@cnsBM=`X#l6@@^Bsz1;QA>jrRS<_t?xG*cU#-yCV^{y-Ed1Cq zr5W9_JJF9vJFKcjg63O;hIw=!+a?Q{b_(0J7x)3wh(;W6wCb&$S^CTt&6^)xn2u7^ z$P*{JJ2+VRcfK0k5n0DfAiULDqwfT_hla>iSNEOknf1JXw(yB@6C)i^PiMAr5Eg;M(zLJb-npzrkhP}7x$V!>WmJ?mPH}fwEu^{ zovfUks8*c3yK|xWE@Y!UN}s)0KP%L7*Q7UcPOF*ATgE9y6=aI)u2wv%;lr(v5L(H=iZ0$tDJ;xR-Rngvj$ajbO4L?I)x@5oi(!ZoSpBvsJN$X zeM%K60oN_4Bz3s5%{@)mb4lnv!cw1>{ROWVD*>0_q z{CfABc2Pr4SrhCZCrxjy5aN2=1?@B8O$ zsBRPDRt;c&uIJg-(-LbkD%x$ab4HZDpRtw$2^q#j*jdhZF1p6|xtQb-ua-yjF=pjH zDY5h{+t`))yPJYh)4>0+tI3*8Lvly;-gT@rLCYT`K<0&bbWywqAvZTGx+uD({|J@^ zNJh3hOO(Rg`V>6ATC}72kcyZY%&TpzWrjBk02HJBiI-)@1l*%`iylN~zVQHw#F9S= zojRwqLC!7{gRe#-ne-R(gbz-Q`ey&Ny$Jev)eViv=A?$PCd|g4YeL)G*|98Np@x)g z%W#Ei`sY0w>3Pm9!UaWmbgj6UZIA)Z)!S5g=iSh3`q*nT9t-IEWg=MG&n+1<(DUl4aJO7B#s^x|( zWgNwSaD$E7216ks)A^~jGXLXwJAUWC1gLzFy65BOXqc7dixnI~5v?Tp;6e@#Gq`T#QKhkc`ltXy!tzXU(dX-gk zfpi&xy-ZmGSj7?oKDEEF&{XhJa|BE*bf|cKUMlRZ#A5~?j@(e*;%Dzi$pR~*s0Hk5 zAI8eQ#l2>;l$ffe#;Mo8KtM)Su8=xM;3YIc$9Rjia^3e||<0v9(Da+Pl0JxOU1#N{XXAfB~{EKLK< zR&GlijjnAn;8Qjrzmd?%FDp|{*zw1#H$`bNt7`WxN3l5gNOgZ;D>o>xx#jnbndi~+ zu{BkX9@x5H(tdof^P>A-92r)5V}oPK#=+x(Std!w#N)_dC4-c2lSw1sYNV|*1o_MO z*zZ|?-<{mAm`9&Q%tQez)7E>=YAVI`MBE^wTMx`7o$DwBQIK2uXUP zi@U$nTa#qNf_J63JSuiQ|D=*b>TAPw<5>w!0u|n81CgTPR#9|Q$z}l*e5tZ;xv747 zl&}n>(mP;P>6p;jL>Hf2;CC8iumN})LJqZCD@mvlFhl(>#}d5Yg6BeWV%E#EjvvKk zm>9uVaq0=D2-~^hJtgHjS43!5D3k$E7(dk#pF$J`5vvG88>^I2e1k#-^-;kOcsA!m zR;F9t>23Gi8~IO4Yo3v?U4aD)`s0YM`IkHYX7;{fr ziFTu3^~)rHN%1(d<$YH>)>YXl9a0ZXP9&E^isYpz`((jZY**o{vHD$|RU>{2;cR2E zKdcDOxABu2X=S$X2yEh$J5zbH@vh!kM9)-w?hT@Wfderc-7_F6E#t5S0` z?&OR9b$O)YovE!-3f%secMKe50(Ue|%m4C@|7W~o!GNiRWffa(6wdkoq!)k0}!;v=g_ zVm2Hwp`QORDZHStwACpSx!TZ(pC#4c`jN(GwjuXhU?Mf?=^45eExSz+SmVuf2-68C zUCeB2DigshTtVCv@haqmlBDV421FdFY)Ub?6XVBsqUusfUCzq@OzzcyXSb6mNfm}d zZ9;r4bpdZ1;1QGkxXrT5Ux>h^ly6@`9;9H5D1*rdrVJ(v7)YziH;E;rw0|F2iFb?$ zK~AJe__be**S{)?m&7vaKBZ$FnMg)dAnBdS1gi6CJbMaU1TZ=y+Rq$#V9G+U*;Je` zv7Xf59mAi;+XXL--2}c9=rG2t5=*#sMCHoONC)}DAV}zqCOx)tyr4JL5mU*?GMiYq zvO2_%NCm;Q2bV}bMW%|S|Hs?=Ed_cM08yyl949cTsIr66{tB95jn$&BMH1RwXkyHdsrsMLJ{0y~qv1|FEetb(6#Sw!gpA}hN~{)b#O zG4k4_JQvg)#JiDjNkmTl{1MP*8hEvsZl8YMd}wXC)}!k2nZTU&U!Ox2tlAzLa45` z71l{Ly?k2895!!mCFYEX1`<^_Na7EwmVU_q!9j0CMksKaDY%j2jR#>EXz+$Q4r zqKPgfa*G&xc?v;9llMsq;sX$ERooQuEYHMeem7KjeSfMkoamT43l!ZoBSgrCv@o%K zYtqX?{j5M87Lau;BqwpiV!Hu$Vqny5I!O>MA*V!y5(}#ogo9*#31pfMY(yaxB$_lL z>WFdHzhmOL9-DJ%y1*JgGtzr$%Neo1oKP+uO*V}XK?St5iO;MMN8@re)&ND*?0zox zwPP$u#A^5f-d4Qa?)qRo^Ipb|KS2s303@n7}Bw zD`Wxz^oBhRc9V(PA4!5T+O>in$jL@(T(D#4nKN%9wStes37rn+GxPrs+nG8WL~@@} z8yG*6t!#Wyn-o9Y06716Elgk#IbK{mNFEFS1cI_jvZqus5#fjvn#m;}Wq|lU z6yTOmE`LC=s|ZM!9YZ|d!pWnFMW36y)4)@1FedD1DkeI%t7(^tXO2vg1ANaN_cXjn zDUP3w==KcIssirj!!?b+k#M{Bp}USzd7+FKgqUrvvhH@F7gd- zqfQ@I8{mq*gp+mmXypO+(O3m@BblM z^(gw#Cxjf26W%dt)@q9r+WIh_3BwhjC9&Ove){23$+E)!IVfYsRm0G!(q z(p?EgyQKySvY96EDd$3L#7PDbEnW^inr0etFTmpypeHqwkkxaDbfvdXHIWo?@=NI> zWa^-!sJ3feYsH4)K;)9q{1u$$pIOY;PtjBvP8hNpKzIz(dlx9c3`-q$q$Cy5uD!sm zT}hrQ0%b~o;OU{sKqqJjbH>xj4(Oi8YNPgxZ+td>DZq>7-R*n+N~I$-P-s=i{PKen zsedIJsTzJZ&rATGo$YR<>x^-AK7=8|wk2HI_KT}tMdaO}{{#x%fmXkm)4hSB*2MSx z<6Sj`KN7ymi-Xwu5e*~#?@&T#sOlM}nHRRRDH?(q2-dX0Vb8JLM0wtG(lTYN4@5vV z7&`+hvbBGbt`%OfF{+A0xc5wna0`trDZVTKZkee-sdq~zE4rXP001$JZ(dyVN$4*Y zyMVt^Q!qnqQ64uiZw$lp+StUHjm~$=Mv{@!z62<|3zK!a*}9UOnYRX@I=G%0~X< zABIc^&rqzo5~J_IJ{dUMvW-dK6|Cj;Q-(MrUSbh;&DIM-ttDSN*96s_-*xIy=|a@O z*f0l}ku3IBq0h>v6rd{2G$Ajt=M-R=N+6qziDki4$fG21{FyY~OrckCt>O3($!d`0 zGI9*Ik>=Pv&fG?a^4DZ8rNHPpl;MP!Dsd^KiBx~+g=qK}Tl@L7QzRHU!#Epe#WUqV zNKiPB4}calZ<$5_k@_4&v5T9@Cag*NY`pWOGb}y`?1OlLxK?rK*dXy4KCP@=$S=Ub z`V&jeJ|aT6r;FyrxTqR)x8Wm6$d=(xin)3&HBX^5IWkh5ZNzF-NwpNKax<99Y~ve1ou&u2N!w^M)s=7aFI`i?nX&R^z;k#w&W;m>0+I z`?t`C^VeH1%mKtLk?(j^I3F_nm`#b$KeGEKGF98NC#_2+Tz=bP5fcpg`FEn*13&A! zz7%M~Y?6H>nJ|ONgUsb*swjbCl0M2G3*YdEzbQA<@kO~IlRBBn9Le-I1!Cs=-}{;$ zj+%bte80F7yo{-S1Mdp+)?Z`xUG>~c?pM_Ft- zA6B}m?qWpQma~~nHF3+XFF$HUs6ttQ&*5Vm5}s&m1~k{1>xG;;SmPN_Vx zT-q>OhS@OQhldi1Rxq#fID+|>D~WTcMtaovAy=B>ONDClZ{ne=ZBhsVHx0ZVcKzg8 zZ1N}p&td}^d~~_db!l{j3!s#RBw}?Tc|lnp8Ic@*Am)r9 zL6y*DOmst7GVi3>&Ck_2H!etnMU{p={D#nz5eQ^;vaEwNev-#HBLNHP`)LArpVM<1`*0LTqV{`|)sAG4 zh7VOwNH5P3__SLnn8hlPo53`ftEOe)2Z)yZ0p465Kl|yUKD~SQzI?4$V}Je7{}HQn z$aG}pN-8s;p=c3OaIE%e5^B_+lQHf0JDi(J07s9xq9lX)EYa0->=0Wr>o{4x)e-EkernfsN%R?`WO|ffc@rMrXJhthXTN$gPt#O5m1mQ-7P|Q1>oRHeTzMFA(#amIYcp zB2q3Car8hkMl0A@LD$ywNqLaT?ymKFDzEGl;8a8#O;o4*X#Mv9&6m*8mG8B&r$GBg zN4BFbx>ZW~TK-!4ixkh40Gk{vyu*(~X4Of+hbKg%!LmNI#e&nJ*D`ARF(GV3m%;a@ zDkQ_Mji_sx;$8HV2>^@9h5Pbt=OmvXzjpo!Th{7EAb&_Qo|(GR%BR2=`9XrFJ@z@- zcKj<+J&Cf~Cy@`1^qk`$7Qi8*JoCUtcMf{`iS@*l0`Z}a> zC-=-8HA}0!S!U9U5xN$Mu{eQNzJ+1fx#a(T+U9{*QS=7hhfhG{s+*bTdwWN3|NZvz z1C<)f44_4mD%@(?jSr9g-fN-Z9rDpR>i}enpA5MJJ3<-tNNw*xpx><(v<+}7u%9UF zJD}2Pn?Y0xH$MI>g%IAvN}DJ-&wA&bUcbGr+PHi_!2p3sl1`<<3U_f6tzopkBoZYu zO~0F+E@?w`fmJKq{!ZC6grqM6+C(y=nUs+h0Z^^O}B+77dP=I3YuW!k(lv(?|ssx}Kg`7YF z2wh-g z!db&PikPxl#A| zgSAc_B?ranhT+d=cFW|_nQsb?uI(}n$zJ{{SsEZedFXeu8@gtIJBBQ@L%Ewyd=S^bT-y zriL*~ibXw#?U2_w=0T{2X`YcAJny09nA?>tt~tedYs+GWqQAnCg)=+X8+R#9{+Puy z8-+7F+X2X>@g%-EJ_t zT|UM14Wam5Krl6{k;(;Wyl2VB%?nq(=KmqVvw=sDEXxe8J^Tr+;)m-jKY4e((p~@c zctV|dafLNg(f7Q&3__MH^3LA}ZnrSLpv;J;#Z+Lw9(hpiERv-I2P5T?p6`8g?ybzq z-=a=Fc;pJi>CXNY9opTl`-^M!IE%x3-TFY`+tBx?o($?#hOEnOy3`Uyk}_FQ z(miiiFUJdqA|)Y{Fm6VA-cPA|<=8lfQ0MrFt-QwnVeieuYrNXN|0@YnHC3pYs7BNn zLkSY1H!7)A6fI&%Of>{S3<;9#R?*OkHYL;$MU9OZ8Zl)+VhU0*M1&*~L?p-{lMMU) ze$Q*~E!6$I&waeV_dR~karB=awX^qit!rIto$FlZI?vCSd1cex%S~x+$)4r^vtWq# z20hj>t}I=Up>NIZw7h~6mo}$fT9Y@<2AE+~Z8)Ab69}8%PJa+ly5)K9UuXTn=s$y(aL$(#9(tAuc-gICTQ9DudlUC`M^TeT`G4Mq5^pwDdEPfg0I z*7TM7!-0M78$W56 z^iEW|Soib8Q@WaHrtTwg)3P}hZ!%>I3k4*bOgo>NE7VT)+ij$0;|6pJG)YaFKH+>T zB!*R#_^2duE=MHpz9=ZE!ZGIm{b&n7-iG|~; z8EoJ@r~VAu$j<@;JobcC8)g8YMvKG;0x5Drh@Vk`a=F9>l2(E2@+9EK1VUKsUKk7< zqm(#nEy>0aLQ3UlEnU5-e8Z&V%Yid839nk%U(Pf67gn2v$CWr3A? zm<^BBPCfibjnZRdID^ z!M86e;_YpVdc~;~+}c`4XC|I$nw+zk=r|PwKFb|yMeRI@AO({(px9DCB`68^h_OvuGG-ixjoH)fc zqZeYoBgz4YP>F`^3DQ#`0-<2%DQYP(IZ-$R^=+yN*VBI+A^DGQly}*7%O4mj{R6Be zx{e4YF%N#!=fDZ2ti{MK4w3R*I)Y}v=}H~{v&6Y|s%v(iZO~&_Vot|*i%xCu8{_0! zw(IO%Ot?aAOmuLYp~o^}M)X)(W6bS$qEO#imbcZ#IA;L2MJPR4%i|-ZtWD$pp~&7& zNmQJ>2zrZxf;R9o2sc}?VkP70TMryM)P+ZJ2d$ALLFJ2j%f>j++f|k{y_@?U>viXh zPD>taXA*@{;jZMjPfdD_6c9{l2G+~ipF(Z&+>1{JD;vJ6l~@>My5U&S!x4+dYdX#z zm`*x5G?F6!I`&=1*}tF2H-5J$;@iBJA%~XCv_Wxm6-}FY`Hwawc8}N;y|0hIQBKfg z5VThg8j0#!w{r<52kq`*P<9yq=R2D6;1TUe;!tut32s{W^iD05_6RzRDB@6z!;PS0 z%fQ(YzN|*4WAACS3trg?61q}pgE(vWGd(lMK?p+3x}bHE`6OginoxqRX#>oJ;zW?0 zK>i$!?FEf57}bDhC$c&T_-SYs6maf?wPz%JDUx@(OsB1Z`lAZ&?_2zvN?Mf(s?y!% z(*7B|c@j8^dbEvVU~%`G=;^tE#+V5cDppL|B$m!zZ>ed)1W=SKKr;v0XI?XaDYyO7 z4cf#^`ug-E8A%tH2&V89#HA zPY~X#a?gb<^@@*7l2fkJQo$x88iXGZMs=Ls&tawVF2xmi#Si{4m;Dawy3@Iqk>}0* z;~hEz?a9sZf{xe0Q$&e=(1Jx}@YGs!&t+B++|9`I=#*t06u$#6J1LgqP(SwU_Ciya zzU8rUzPGt`oYdEE*-~@Y@2ygF7Qv+T-2&@f&noJEqeMjx)1MNezNy&d zDEdgSRsSG{q3g><^dH3V{{zIZW$?Ho>%~htaq^_fF=U>bIBvjHi*~|649ymcizm=4 z`H2z;s8$JfUt+^AZFq47d^1Y4b8_dx=~^pSQ;~)`ELW?!ASr{9Tn3FUI+lNihN`$_ zQr3hR2)laWyj`w?NN@;=8Gx#{BCwIg0TaYi9MaL~y&Gu4D#?i?Jfg~?cM|X?`F6qs zmN6AiTpP0#RpAL20=UFQBgQHkEKEUF^J7@of>|oz*8uV)x`|5+S5v!+Yjspa@oy{5 zA7PD!%S$W$w?~F?X;pJS`Tvk-*jx2)%4-4t?!>U49`&N=zaeTpj!pDBY7!1|XO%A_ zRie)(hm;6?4HBsy&%-)A42ozCM~_0Xa05lgKRKrlV>_w`G-l2NNPoF+ap0yidEv~I z)4S~oM&CLxu13`G1<|N2f{5BS=+#B-jPUD=iu)OFZt@Fk{Q2P7v5T3J9ur1w^ZoSZze28>pd;G~ob_4j!yWZSmcw z5me3PO3#-m<0aeA)$S;r_N5t04m!(LP zg{vcA$>-rv+xg0EOjEA9^n8pq{ONk%n84B~`Wxr_zO2iMu81B*hp~zfTfZS16R&7Y za+#$fsx6J0HNt@tf$kGlHm}x?VjOR!M@Pef>F?reu9VI*V5*(j8Hzn8tqNlXAXSi) z{uysR?m;V(T}9O+RE5oPZ3Ji0guFa5oAlmVIy~74b6gb-bWQYw0-{nxl*-=MEb6bn z-c#^O(`mQpF1yAPF7579YNN6uuekdTVoR5t1SG#0|2i)NE3)M2bKX!`dU{ebgwh|b zAH%jl0_|w%TrkOW3{`P!b?y=P-Tl;!JN*=)K+~tCPeRh5Vmn%ILZbE5d3%EHNO##oPZSCX{bK$~A>pokKGQ>lR3z|@02LS{Iu^5si7zb%?*yJ29ijSL9 z5H~&=qJI8JKD0Didt1jM8rIPtdY8+eKa{F_2dav_rc4M$H?#zn=8=+7wQaj2nvS{sefII1vKv0odvC;r z5ci7u3d99-PRH6^_%-4t@}4ukcy8Igw370jtOyacRDvHhNXz!kzzZXV{MdPWkD$Tk=J2J1bof;FS`<`9T*c|&YdLJ zaxx_|Ax8oFG0lQX${fRe5_ijtZKylF!7df=iX#A3I$MA{bG%^X;0vcYPEGm!MYg5gD60Z+|JpT$wNdh$7=E&$#+d-?p&X=&-1aay z{do0ctxJ4^vr!)`L0xi14+$l3Bs1;@3aqIsC2R%*a*ibzIm#c~3ej481gwt6Z^4&S zUXQTz^^d-0e1?wYF|eIc3btgCmAhB|CWSFk*cj8)i=!ZRz-OZSLGUH8ezq% z$RegUphkM(+R{&u&8mfPd1XV-Nu1B%=$HFP0ulGjW9wNvtB4ITs~Z>{gc41KS8fc0 ztwt?#4VNN8Iv}W`rY4%RA}V0+D=s+Tsgy@EqDjD_SzEVSMH4~}U^&7YmAb>#_gMDf zSTC5js!_>mNX396$9vF=Ow7SrXe8ThQkn4>lv{hiJYv^pn|smPsN8Td1*iqOEUlth z)oU1xI<&NxT}fsfYO}C>BUF8KV#z!z0H~LBP>7snSX4ZFG~G<`yLS>Hf%y=J$%pUr zE(+JE=F?LTyXF$Q!Dec0DU>0YTmt8a5d6JGgmrThATbjP$-z(H3oe~U^NFmsIbutr z>#oe-1o;?ldxXd?KFX3YZ!{gCyW<`iIqSnt`PCcJb8B?s)Swt-(mEYNnn`yYB{l?4 zByD+$>$z1&yomc_5lUA7h9;e%bgJDs>*Y5>-%8^VVO^`2mIMnr{@&9u>&7}cqMv`% z4}d$VCAc_)tLcDovGWxICL5dIzI^%psU|$z|F&(7A(L@Ei2Pk5I3sD{nrEq}@73uV zIje7tq=xZ7yFGk_)0FpWr7)QV>L{(d#tbsDZ)RKY9`rj+Wx|6$Wc$;KZCgEdZ;e^m z;MB6PIIrd_k2X_~gA6GIocD>-Dj~%zm(q5mLxex;jU42s3lf-vjJ=%fuMDhg5j7zR zTeaXc^Ip_B5uXdPA!HbvrfOGHb%9|WL%is3A4CHduEy{5n==$J za=j>5mL+F{Qz>vy&RcN-A5VJ@Qu5y~=h==lb=lpb88zwi=iovsc|ak~CG|rbxTc#! z*hAJqPD=O;NCf8EYLG2tFHr`d8`#J&h`o@EFIZMlAenlWvw+^Wv}S{~dkclqfogb@ zo9u*$N8J^R1|7ym-CLA$mY#PM{&SB1plaUjBoedvz|xC2NG3yHNUv|_!Ed_-`ndGn z#26$1fENxBr#_hL>TBTg-cI`4_fY?KpWB;s+HX;10gVx=6ndqOAEa|2z$2bImu~~H z-cKF_RdwBbeNQ4)899V~wuU;1kT%1ht=`PyP? zl0flV4UnTA#iXUgHuOKoHi}kzEf1n{NmN zs91ddwF>0~`FjSGT2jJ+4WMLziMWSy1(9(3_wDZFaq-DbH&FP9OXk5g3B?aDctjd@ zD-t_!+~>aK;_Xz>tG^t)1G|=YAZJ}yL);Y;aQ5D0`cB*k@Xm}FO#s=j>0QU(300ze zS5F+ZUCN)U-v#Uir@1_cXPd_J~hRbRflB8?^Ja6t$l&b(g#{)M4mF(G@CaLv)>iQf8;k zE-TNXqh>-L;jHU*9;{iN?8N*wWH=u~e%ElI3Ug+T@_dj*6?%dTN%;Pv;~MgsO>#zL z-;P-345oeLD$TSRYN|D2< z2PIoV6O{HqvTQOZ2mM>g44M|R>fwlX??)iX7+DJ5D?{B9@=j&+G1X|@Yxm9%$aY?0 zLUD7ZX=6`HT=Sul(~(RpV>;Xu=Upb9k+8_*L?+L96~BC*r~8|-#`BuBk-hEnJ_+cO zoUEem{8gutLO%{R@?&kA@+*5W==7rKMTg_^fJ1a*OnNv%Tp)1mcR4aEtB11n^Ndb5 zfhDu@y$Y&^q_GM%Zd_3>LdIF?QugSqz86o-=tGA5sq~=d+gc}FIv#tqYU*BQ3Oc|S zu1S~ou(k&sP|;y2b{C;@+)$V6!z+6loB;zZvLYcoChMG^T=PeGC{ZL`PKUBCTi zgwA3XQ3pFZDA4+XqoJ#GM=xL+#}9+@nvs*KO=#=JE( z!FO<^M_0Ut3GS>OlGIRK3|kw<{!u6 z>qNW`?-_S8u3w{#aM~F$r5evvOW~vdPHCcXW*#5q%)^<>27(}7zvxYG zB;2perXw@)Edql2|CPT~Z9}`qUPhL7D_1z0AiZVAoH^g~sC$xsA55f8YO&;N?I;hs zblJ;l{Pj;%+w)_>{LUMDJvU0-IBnLf`-mfSB=`>RzhAHciS6_cLp#*@4P5s>4DJ5_ z`|b3;Sd*#7_12ClZ2s-mhQ^XN3Fd3RcNUMgpIs7mx(Y(J9C>9n$k6+u{!hS*f3)gt z6y~=AngR13@I`b4_}=vgI)di@(JGa0OiDZc03tgW)&KFAbiXF!+|VM>&kamva?uBT zF`!k={@XuFBh6iZTXNnFIPCvZt}{j&9zktH?!U)%>w4_}ef$37PSCZ~wo)IduO_|v zt1g85g?=Vc-tgw$@*cLX>bXX2T%qFx~YgQcF%?|>{IUh#iAFr9@Oa- z^x|&O#5@nAqE2|Dvf)(%FtX&|Vsv$6)UCB3a#J}$_ElDMrzJhqa*;}Z)@Jc|8wb@Y zkj1kVGxHGYsu|@Q&+1nwA2Bn&xuP9{xL#24IqL{rr0RHfO3Z6Hs+Xr6XxCsh03F_C z>E_zWsCUB=O|xc`W7l`IZJ{Zj^%{S}k8WNz_!eTP{6(H*oCYwqf^tY?Of6C(9RhI{so9K2*@di}Wy7B~Wk`L>)x6Cdff3 zrw10Zb{#ceNF`!zk*jbm+8em9p0?ymN!c{|$&G97uUx z^U<%`)y#X&!%!4WZt?t zg$9Mpt}r6{^hDaHEgCKP&gE%wJ?(7|6!z8DkBw!^`XgS)T0yB+B?QU5;_)CPuirj8 zt7*vMo9*$iC`m+_V$A;W1)m+Al~gTCyB%-@6v%_OW|N$|kOlOwc#XmXAS+_0d0Fa8 zGG7!6_9948#rXJ>v;`sFwFp{KShCEIPKQO5)Kb)fXL1KpePawPTETw_G$u9WA=sv= zC2@A98s}HM*l2?KSTGHdTRl1!4An63bprV`tf$^8CBag1_v)8U=(Lg=Qdk|ylKy-^ za%*Xv1^CKZSZ-(y@Y~2oBmhWpwC&5=ljNz&tcaG82^K2A$m>_aq*ELsUlzDSZ>?Ky zlu4bgz7N#PPSd!JS&SX^B;q0Fkt+LO=zIsEXPi{Y{vy?IwgJO}ZO9haD`OxTu z<9gxYVS@$Q0y4w`hm@N&SAGZ-(APPZM}IkLk~4D?-Zvk#=hHujBWXY_sRrA~C?{p- zaX{K&AG#wPf0`BHzqB1LoHyUH>p`B0gI&(xLnUgbfP2AtL^AKfd%X!-Q_N6(&GK_} zYupXMT*w-e;>ZBfmkBRqWjS`52INvj^U8m@ZO#xou@yWM=kOt$ht+&#R!b`K<0b%5 z2%*UnWY`GlPA!thjLmF2KX!LYr&$a&lvvDU6&))5pD+u?)*-~35o zDnd^{-CG&0ZG;@~%$fCeN0fx<%VSxCcGUKT6ONo$cj_G!YZX~VvwPC{!sf~Y4=?@d zs2x%*_2S}xNWLiwVT~$?+6+sQENvtb{zLM88miV1OSLzvf*m0yNn8z)sCtkrCyfw# zi0M=8X{m&Wbi)87d`04oegj(Dn?Ly-qf+}G?Cx8u-$bm~ z?66cgP7i6OY1-)}$&iXCQOfDu>v(9rLFYGH9s83BlL2gF!$ zw=1uj;m4Y7uA%I9d0}(OU?&?&7D_?3${LG2t>$DvA`b#@P`r#xfqD`wB80`Af*HT@ z#vQaN&Ane->);Zx8BD|PyIt+M1&ORkR@6HnH}(!k2G>D|EOqEvc2luH7>$}ra*oR) zNuUz^C<};#-$t4?`?2;g5}O!WVJU71Y#`)3SWJFB7g>mY*5M_=WhGX=lb` Nkl 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 Tf5(vu{`m|ZK4|xAK_CAQ1nAyV literal 0 HcmV?d00001 diff --git a/main.py b/main.py new file mode 100644 index 0000000..8fc7d21 --- /dev/null +++ b/main.py @@ -0,0 +1,40 @@ +# main.py / 启动入口 +import asyncio +import os +from tasks.water_ammeter import SD +import config +from models.water_usage import WaterUsageModel +from models.ammeter_usage import AmmeterUsageModel +from scheduler import start_scheduler +import logging +import warnings + +warnings.filterwarnings("ignore", message="Glyph .* missing from font") + + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s", +) + + +# 确保数据库目录存在 +db_dir = os.path.dirname(config.DB_PATH) +if db_dir and not os.path.exists(db_dir): + os.makedirs(db_dir) + + +async def main(): + # await WaterUsageModel.create_table() + # await AmmeterUsageModel.create_table() + + # start_scheduler() + + await SD().push() + + while True: + await asyncio.sleep(3600) + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/models/ammeter_usage.py b/models/ammeter_usage.py new file mode 100644 index 0000000..fe30979 --- /dev/null +++ b/models/ammeter_usage.py @@ -0,0 +1,55 @@ +import time +import aiosqlite +from database import get_conn + + +class AmmeterUsageModel: + @classmethod + async def create_table(cls): + async with get_conn() as conn: + conn.row_factory = aiosqlite.Row + await conn.execute( + """ + CREATE TABLE IF NOT EXISTS ammeter_usage ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + room_id INTEGER, + room_name TEXT, + left_ele REAL, + left_money REAL, + left_free_ele REAL, + left_free_money REAL, + ele_price REAL, + mon_time INTEGER, + created_at INTEGER UNIQUE + ) + """ + ) + await conn.commit() + + @classmethod + async def insert(cls, data: dict): + print(data) + async with get_conn() as conn: + conn.row_factory = aiosqlite.Row + await conn.execute( + """ + INSERT OR IGNORE INTO ammeter_usage ( + room_id, room_name, + left_ele, left_money, + left_free_ele, left_free_money, + ele_price, mon_time, created_at + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + data["roomId"], + data["roomName"], + data["leftEle"], + data["leftMoney"], + data["leftFreeEle"], + data["leftFreeMoney"], + data["elePrice"], + data["monTime"], + int(time.time() * 1000), + ), + ) + await conn.commit() diff --git a/models/water_usage.py b/models/water_usage.py new file mode 100644 index 0000000..0e3f4f2 --- /dev/null +++ b/models/water_usage.py @@ -0,0 +1,55 @@ +import time +import aiosqlite +from database import get_conn + + +class WaterUsageModel: + @classmethod + async def create_table(cls): + async with get_conn() as conn: + conn.row_factory = aiosqlite.Row + await conn.execute( + """ + CREATE TABLE IF NOT EXISTS water_usage ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + room_id INTEGER, + room_name TEXT, + left_water REAL, + left_money REAL, + left_free_water REAL, + left_free_money REAL, + water_price REAL, + mon_time INTEGER, + created_at INTEGER UNIQUE + ) + """ + ) + await conn.commit() + + @classmethod + async def insert(cls, data: dict): + print(data) + async with get_conn() as conn: + conn.row_factory = aiosqlite.Row + await conn.execute( + """ + INSERT OR IGNORE INTO water_usage ( + room_id, room_name, + left_water, left_money, + left_free_water, left_free_money, + water_price, mon_time, created_at + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + data["roomId"], + data["roomName"], + data["leftWater"], + data["leftMoney"], + data["leftFreeWater"], + data["leftFreeMoney"], + data["coldWaterPrice"], + data["monTime"], + int(time.time() * 1000), + ), + ) + await conn.commit() diff --git a/notify/wechat_company.py b/notify/wechat_company.py new file mode 100644 index 0000000..5106c11 --- /dev/null +++ b/notify/wechat_company.py @@ -0,0 +1,12 @@ +import httpx +import config + + +async def send_image(base64_str: str, md5: str): + url = f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={config.WECHAT_COMANY_BOT_KEY}" + + payload = {"msgtype": "image", "image": {"base64": base64_str, "md5": md5}} + + async with httpx.AsyncClient(timeout=10) as client: + resp = await client.post(url, json=payload) + resp.raise_for_status() diff --git a/scheduler.py b/scheduler.py new file mode 100644 index 0000000..a8a6821 --- /dev/null +++ b/scheduler.py @@ -0,0 +1,41 @@ +import logging +from apscheduler.schedulers.asyncio import AsyncIOScheduler +from tasks.water_ammeter import SD + +logger = logging.getLogger("scheduler") + +sd = SD() + + +def start_scheduler(): + logger.info("初始化 AsyncIOScheduler(Asia/Shanghai)") + + scheduler = AsyncIOScheduler(timezone="Asia/Shanghai") + + scheduler.add_job( + sd.fetch_and_save, + trigger="cron", + minute="*", + id="water_ammeter_job", + replace_existing=True, + max_instances=1, + coalesce=True, + ) + logger.info("已添加任务:water_ammeter_job(每小时整点执行)") + + scheduler.add_job( + sd.push, + trigger="cron", + hour=19, + minute=0, + id="push_gzh", + replace_existing=True, + max_instances=1, + coalesce=True, + ) + logger.info("已添加任务:push_gzh(每天 08:00 执行)") + + scheduler.start() + logger.info("调度器启动完成") + + return scheduler diff --git a/services/collector.py b/services/collector.py new file mode 100644 index 0000000..9f448a0 --- /dev/null +++ b/services/collector.py @@ -0,0 +1,13 @@ +# services/collector.py +from models.water_usage import WaterUsageModel +from models.ammeter_usage import AmmeterUsageModel + + +async def handle_water_response(resp: dict): + if resp.get("statusCode") == "200": + await WaterUsageModel.insert(resp["resultObject"]) + + +async def handle_ammeter_response(resp: dict): + if resp.get("statusCode") == "200": + await AmmeterUsageModel.insert(resp["resultObject"]) diff --git a/services/plot.py b/services/plot.py new file mode 100644 index 0000000..2a6546a --- /dev/null +++ b/services/plot.py @@ -0,0 +1,31 @@ +import matplotlib + +matplotlib.use("Agg") + +import matplotlib.pyplot as plt +from matplotlib import font_manager +import config +import logging + +logging.getLogger("matplotlib").setLevel(logging.WARNING) + +# 从字体文件创建字体对象 +FONT = font_manager.FontProperties(fname=config.FONT_PATH) + +# 负号修复 +plt.rcParams["axes.unicode_minus"] = False + + +def plot_line(times, values, title, ylabel, out_path): + plt.figure(figsize=(8, 4)) + plt.plot(times, values, marker="o") + + plt.title(title, fontproperties=FONT) + plt.xlabel("时间", fontproperties=FONT) + plt.ylabel(ylabel, fontproperties=FONT) + + plt.xticks(rotation=45, fontproperties=FONT) + plt.grid(True) + plt.tight_layout() + plt.savefig(out_path, dpi=150) + plt.close() diff --git a/services/render.py b/services/render.py new file mode 100644 index 0000000..1a8e596 --- /dev/null +++ b/services/render.py @@ -0,0 +1,40 @@ +from services.statistics import get_ammeter_left_ele, get_water_left +from services.plot import plot_line + + +async def render_ammeter_chart(): + times, values = await get_ammeter_left_ele(limit=24) + + if not times: + return None + + out = "data/ammeter.png" + + plot_line( + times=times, + values=values, + title="宿舍电量剩余趋势", + ylabel="剩余电量(度)", + out_path=out, + ) + + return out + + +async def render_water_chart(): + times, values = await get_water_left(limit=24) + + if not times: + return None + + out = "data/water.png" + + plot_line( + times=times, + values=values, + title="宿舍水量剩余趋势", + ylabel="剩余水量(吨)", + out_path=out, + ) + + return out diff --git a/services/statistics.py b/services/statistics.py new file mode 100644 index 0000000..681b7f6 --- /dev/null +++ b/services/statistics.py @@ -0,0 +1,48 @@ +import time + +import aiosqlite +from database import get_conn + + +async def get_ammeter_left_ele(limit=24): + async with get_conn() as conn: + conn.row_factory = aiosqlite.Row + cursor = await conn.execute( + """ + SELECT created_at, left_ele + FROM ammeter_usage + ORDER BY created_at DESC + LIMIT ? + """, + (limit,), + ) + rows = await cursor.fetchall() + + rows.reverse() + + times = [time.strftime("%H:%M", time.localtime(r[0] / 1000)) for r in rows] + values = [r[1] for r in rows] + + return times, values + + +async def get_water_left(limit=24): + async with get_conn() as conn: + conn.row_factory = aiosqlite.Row + cursor = await conn.execute( + """ + SELECT created_at, left_water + FROM water_usage + ORDER BY created_at DESC + LIMIT ? + """, + (limit,), + ) + rows = await cursor.fetchall() + + rows.reverse() + + times = [time.strftime("%H:%M", time.localtime(r[0] / 1000)) for r in rows] + values = [r[1] for r in rows] + + return times, values diff --git a/tasks/water_ammeter.py b/tasks/water_ammeter.py new file mode 100644 index 0000000..3d80a5b --- /dev/null +++ b/tasks/water_ammeter.py @@ -0,0 +1,152 @@ +import asyncio +import httpx +import logging +import base64 +import hashlib + +from notify.wechat_company import send_image +from services.render import render_ammeter_chart, render_water_chart +from services import collector +import config + + +logger = logging.getLogger("task.sd") + + +def image_to_base64_md5(image_path: str) -> tuple[str, str]: + logger.debug("读取图片并计算 MD5/Base64: %s", image_path) + + with open(image_path, "rb") as f: + data = f.read() + + md5 = hashlib.md5(data).hexdigest() + b64 = base64.b64encode(data).decode("utf-8") + + logger.debug("图片处理完成 md5=%s", md5) + return b64, md5 + + +class SD: + def __init__(self) -> None: + logger.info("初始化 SD 客户端") + + self.client = httpx.AsyncClient( + base_url="https://zhsd.cqcst.edu.cn", + timeout=30, + proxy="http://127.0.0.1:9000", + verify=False, + headers={ + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Encoding": "gzip", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_3 like Mac OS X) AppleWebKit/605.1.15", + "Connection": "Keep-Alive", + "Host": "zhsd.cqcst.edu.cn", + }, + ) + + async def get_cookie(self): + logger.info("获取登录 Cookie") + + resp = await self.client.get( + "/cqbn/service/weixin/thirdLogin", + params={ + "uid": config.UID, + "userNo": config.USER_NO, + "schoolAccount": config.SCHOOL_ACCOUNT, + "userName": config.USER_NAME, + }, + ) + + logger.debug("Cookie 响应状态码: %s", resp.status_code) + # resp.raise_for_status() + + async def get_user_info(self): + logger.debug("获取用户信息") + + resp = await self.client.get("/cqbn/service/find/userinfo") + resp.raise_for_status() + + result = resp.json() + logger.debug("用户信息返回成功") + return result + + async def get_water(self): + logger.info("请求水表数据") + + resp = await self.client.get( + "/cqbn/service/waterBalance", + params={"type": "3", "systemType": "1"}, + ) + resp.raise_for_status() + + result = resp.json() + logger.info("水表数据获取成功") + return result + + async def get_ammeter(self): + logger.info("请求电表数据") + + resp = await self.client.get( + "/cqbn/service/ammeterBalance", + params={"type": "1"}, + ) + resp.raise_for_status() + + result = resp.json() + logger.info("电表数据获取成功") + return result + + async def fetch_and_save(self): + logger.info("===== 开始采集水电数据 =====") + + try: + await self.get_cookie() + + water = await self.get_water() + await collector.handle_water_response(water) + logger.info("水表数据已入库") + + ammeter = await self.get_ammeter() + await collector.handle_ammeter_response(ammeter) + logger.info("电表数据已入库") + + logger.info("===== 水电数据采集完成 =====") + + except Exception: + logger.exception("水电数据采集失败") + + async def push(self): + logger.info("===== 开始推送水电图表 =====") + + try: + ele_img_path = await render_ammeter_chart() + if ele_img_path: + logger.info("生成电表图表成功: %s", ele_img_path) + ele_b64, ele_md5 = image_to_base64_md5(ele_img_path) + await send_image(ele_b64, ele_md5) + logger.info("电表图表推送完成") + else: + logger.warning("未生成电表图表,跳过推送") + + water_img_path = await render_water_chart() + if water_img_path: + logger.info("生成水表图表成功: %s", water_img_path) + water_b64, water_md5 = image_to_base64_md5(water_img_path) + await send_image(water_b64, water_md5) + logger.info("水表图表推送完成") + else: + logger.warning("未生成水表图表,跳过推送") + + logger.info("===== 图表推送完成 =====") + + except Exception: + logger.exception("水电图表推送失败") + + +if __name__ == "__main__": + logging.basicConfig( + level=logging.INFO, + format="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s", + ) + + asyncio.run(SD().fetch_and_save())