From 1a632e63e50620dca25c8d14dfbd1adad1552af4 Mon Sep 17 00:00:00 2001 From: baoliang Date: Sun, 10 Jan 2021 21:22:39 +0800 Subject: [PATCH] add message --- management/views.py | 11 +++--- polls/models.py | 2 +- polls/utils.py | 10 +++--- polls/views/__pycache__/media.cpython-38.pyc | Bin 7604 -> 7906 bytes polls/views/__pycache__/notice.cpython-38.pyc | Bin 5852 -> 6033 bytes polls/views/__pycache__/task.cpython-38.pyc | Bin 3691 -> 3742 bytes polls/views/media.py | 33 +++++++++++++----- polls/views/notice.py | 10 ++++++ polls/views/task.py | 3 +- 9 files changed, 51 insertions(+), 18 deletions(-) diff --git a/management/views.py b/management/views.py index 6fdbf7f..ee3da95 100644 --- a/management/views.py +++ b/management/views.py @@ -1,4 +1,5 @@ import json +from polls.utils import send_tnps from polls.models import Notice from django.contrib import messages @@ -1717,12 +1718,14 @@ def news_management_create(request): news = News(type=t, title=title, author=author, date=date, content=content, source=source, image=image) news.save() - if t== 5: - profiles = Userprofile.objects.filter(id=15) + if t == '5': + profiles = Userprofile.objects.filter(status=1) + content = '管理员发布了通知,请查收消息' + phones = [] for p in profiles: - content = '%s发布了通知,请查收消息' % (p, ) + phones.append(p.user.username) Notice.create_news_notice(p.user_id, content, news.id) - + send_tnps(phones, content) messages.success(request, '添加成功!!!') return HttpResponseRedirect('/management/news/management/create/') type = News.NEWMEDIA_NEWS_CHOICES diff --git a/polls/models.py b/polls/models.py index 25efd81..1284ea7 100644 --- a/polls/models.py +++ b/polls/models.py @@ -77,7 +77,7 @@ class Notice(models.Model): @classmethod def create_news_notice(cls, user_id, content, news_id): - return Notice.objects.create(user_id=user_id, content=content, news_id=news_id) + return Notice.objects.create(type=2, user_id=user_id, content=content, news_id=news_id) @classmethod def create_reply_notice(cls, user_id, content, app, model, field, record_id, record_pass_value, record_reject_value): diff --git a/polls/utils.py b/polls/utils.py index 07864f6..487dcbf 100644 --- a/polls/utils.py +++ b/polls/utils.py @@ -14,7 +14,6 @@ from aliyunsdkcore.profile import region_provider def send_tnps(phones, content): - url = 'https://api.tpns.tencent.com//v3/push/app' r = requests.post(url, auth=HTTPBasicAuth( @@ -23,11 +22,12 @@ def send_tnps(phones, content): "audience_type": "account_list", "account_list": phones, "message": { - "title": "【新媒体管理】有新消息", - "content": content + "title": content, + "content": '' }, "message_type": "notify" }) + return r def sent_sms_code(phone, code): @@ -166,4 +166,6 @@ if __name__ == '__main__': # 'http://xgs.gansudaily.com.cn/pages/h5/hot/b3297046a53e47f594ed19db90c1183c.html') # print(og_title, og_description, og_url, og_image) - print(send_voice_notify('13993199566')) + # print(send_voice_notify('13993199566')) + r = send_tnps(['13609346975'], '') + print(r.status_code, r.text) diff --git a/polls/views/__pycache__/media.cpython-38.pyc b/polls/views/__pycache__/media.cpython-38.pyc index 8e85cf868274ac19d6b0ba2faf5600ae2f6a006e..6831a5b6f710a3043bc3c04920be15bd4bcc11f4 100644 GIT binary patch literal 7906 zcmbtZTZ|mnaqY+SV`h3D`+jiw5JgfP8Qzs?C~*|Vk!?zmWQnFlDNe>R$Fp;r%W2Jv zw|hj==n0fCFceE`QL${;kl@S)K^!@NCBq6V&~`rakq;wZ{^&0Q)-JVQ{<2{hL6lR~ zy)(1JB^gD#*xI_c>OQ*q)~Tx7Pv>$O1wUv1=l7MLe@sz+MUBy)6dDiW&;M@_p$N61 zG}W@I60bG1re4;Ysd9?jdc$a%Ws~_-!)n@Pn|Y&=Zl=p==FLW?nJs6VPT6VZ%DHB~ zoNpG&g=Vo_Y)+IXSjTEiHmAx{%-fCW=1h5p`E+BpIai)j71wm9L`G!)R=KKPRm=0- zc0?{|FK|0A3Q2pB+eI;vwD)m)QcNZ7C2miPnWVj++p}UWX&(^tXO+^zHY}i&)F|z{ zEl~+t9lxYS&Lct4dD8Ve?UwIG&SQSNwbO!Xw&u(875B2+>;yFOOm(f^ss?R|hApar z8`PU_$%@QV?e3L&E3!|!m!5D%y&9!HUk|F0^;EkX)T`|%`?T-Mj%=T=H{8hhf?Hp0 zM<)JVuD3ANbf?{D_?1Q*vsa{hv0Im}K)-pq9n@(rgR2QB&zzk{=!a z={0`_fBs33Q1S4hpVj1apbAas>*`tR)B3tdZKyppNcD|S1*Zk3FhWh3uWP~*_PPc$ zrB6qxGoL&A)b=;A#v9m!A5?>`9~Ihit=g)8r5e=Rtx8=)mfx+_T;G2~lQUQ}vYKdA z*W8CODCJkrvt62QaG@G#yNmWLE4188 z6;|@!P~>5B{r>S4vZKGUT5UJ#)z;byOzOF{z+X9W---KHn(bBCcLn2kShL-#<6YHB zj|{x>T;09oudr;nb0sq4$#a<5XD`w-YDRVNCy$_Smyr#042=8;8n-fXPYqR1@257D zo)&7J;h8->u=;kW!{DhPEmC1h7%;dgEH=1(T25jagpF*n(?`&=%TDwtS^V)~ysX7`^3=Wtd$46-6~#;O@jMn7BgfP1 zTYNlq$ZhZj*(*%>XJ9kfO4zS!SL1_B(ln$-X!tFbX2zshNX^jnUt*~LvN1t?iKUUb8gaGV7<%GTV%Z_#XjieZqi#~y))3;&w5`G2cVa~ zN$()*9T$hN=h&8a;fZrW;U>+)q!~K>;)bFs@$+5NWImYaPvU*$#oeKLUY%8Xg*ByD z4D+XyFP-R3gvI_;IN>SY^akQcFw>vq)?8Q+N5YIa8am#bI417dK=in#Ui^759~Q&H zRZUe|=P>gEw)o+zxtdj>3l^_!+p+ee5_IxP2>q?wbMZo64`{~t!mSiMN*ooNf(C`DL|)jrPAWy zFH5u}9gSp;6FYO%>OtN0OOr9A-%A>5J5tZfkJ1P_GZGo0!pCLgbYwV#sPL*Bxb1oi zF}_uE<)>&4leg$cR;}HlGa8wl3+_htTGTS2wyG(~@B8-uuSZW|jnR2bjlvWC(fqWQxw8hsI99_-j+Vcz9O3OR@HD%^ z8y(X@8t_~ADggGjxmKw9Cjta~3Sol)Mwyrm07Qa-@V1wf!kZrI2yZ0KjE$x6MxpT~ zmO4Aqz__X)D5@fd-0$tc^ej(Dc9&o0VCdPQA?%Y%>v?Dtpz(_!J*JUKG|oYz2#wzb z*)a_SFP`HhG$uF*Ed{wT9RwuSnGXtMl42|gCJ-p~Fm+W&&@sKqP+wEU0!i8=OoAu@pRHsfV;OD`mnVa<%z)yp>`imj##zE&CW|_lkq-}cp zz|AnX1a6kO{ov-9I{kCL4E>#NTRjQv+|F@%0D6UrywW< za@`Kq9hLKSw;_B6hsaCwg>!qUP!~Gf^{=3jg2rQkF{S}0VvT2@VL+o1SYsNfI#}ZYXqeFWI$VDD zDw#xM9zHu@^V6u5Hw!Mu+#I+(bMxQ|%q@T`GPekBg1H=lhL{9z;6I!^*e9mJ z&7iJA-OqK^{AqS1`3&qH2g2RXBq`H^M>*^mmAK4}qb;AY3dB*Cg=e`0zU3i}Px+T= zo$=CbNmi+w@;JFlggxzpIMj#>S?=XpqbuA!-RJ_%ep_FPD?mGTs85kPJCqA9GT1kU zUL? zq&~L_vPqpyb)~^|<*TYR}=Fo`~NnRo{INuo$!4I`o7XFB8 z(c1}q*Kp1pXuU0R(8`Tz?F2s$T6t(iq5!SJm{t-9Tc@CfK+84c1oS4x^d=En!bsK^u=C~%{bCp>H!a1tvg8BXesyG{-5m#|(_;Mz+xr)n%8H7vn`F&i) zE%oi~l3OlS(s;vEokVtym8;?4vI!%UdwDy|_G#@0CmZNsA~^TVvRI9To9hpS=F z4$rRl4<{)>j^9>3%whKj!aRj%@OOh-Vh+y)em{5z&zR?wK)Xn@P^c$u%R2(@0CPvd z9b|4693=;qcMRMi=I#M^7jp(yFvMZ-bQ10c=Gdrrhbh6)Tc-r_FL9!|tc+cb0(^`K z3{H$o9A7!o)6wT}KddCS>H4WlPI%P6@#>FI*=+sjU$$R;e$R48eugIC^6nwxPJwK5 za98gi!?zJg+np|OD2VEE8&U>Ma*3a$?r{y)_^>76VZuuhdw24jb{PIg3U z;KG!u7#lF`tgHPr;LJ#RP~{{&xajjTJuAop!fk+`!(h0ID#7w{p&sP>g$)H&koJt$ zO9KEi@|QeEF-+s4&JwurTTk_}EqrhY)0K%ZO_yKzV1X(HEi-NfW`7E+I|7i*S7JE; zQ$BPUObcPYKOGhTfin!Ivwd8Kp*0`o#FW5?2|&s`B_;`&&ISu1;ETW%b;Z0`7(DYW z_Y8Rd)~;PI4t9;IXJps=#&*4kwE^)TYUfLXo&VRZb}kfLx!qh9v6E6&Gy;L-pYgre z_r5W9FD5DJ>JkEM{oRXOuV3GM`NyM`QAy?02T7Yn7blgvC}~_oM43j_58@9f@((b) zl!}ui#sV%vI6rFA^rJAk`SQ27UVHn-4>oRG`|9Q^-yXd+ieZ#7h{qC)N(NL)^15_C zpNwWe-hBC$?dSh`>xFBZU;797hosvg@-RqgX#_&Y;F1xQ7oqepGI2#2;97Ec4>duv z5HLnL`UcdNmH5&{TGXev+Lt0T>EUfMa()odEEQu|P*&yWMdmeeaS3(2UYg z!}L$kSExuwg@}71zO)jN+L0aF>=Lh+m)kN}W;5@Bl^F90shbc literal 7604 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 SW}0F8ai%vjJ;d}@qW=Zd(!Ndr diff --git a/polls/views/__pycache__/notice.cpython-38.pyc b/polls/views/__pycache__/notice.cpython-38.pyc index 569da4a2905577e33176348c37b8c2aa6c2c2feb..4bebd61725cd2b33a98311bb9e57929cb4d7d251 100644 GIT binary patch delta 2826 zcmbtWOKclO7~WaiYkSx0NBqd6X`8fZgPS(#lai_}qLfG#eLx=sEP~~FCW&3YGP@3{ zKp^E*i3o}WLPF|=1LBCZaNtrP5+HFc2>Ab5lO|DmC^(ug^Z)bw zzxf~g{l593@DAofm>!r4GJQF7h3ow%!G;~9mC9@=xkg`d`EjcOW2#vPnl$2w%ttGchIZhKTxkJiH znrg|NQf{XmExC(omy$}la|Q36CQi^|6`HjxHETIZZjojL)Q-Q*EGsv`MwW=R^-C~@_pv!}DLG@~p_Qk=g}u;o^h(t(eix0G&ZE#xx(30|$&&d`ijVXscV2 zKZy!bc1X=36-T4Y&J{}QxmO(1Rkz3=fh86NP&_)(iI<3HjIo{!$a$pm-ygc80qtpM z)*g?z@7X4PFnY;dF&Rsf&&A%*c5+Ib4HfBxGGjFK)5_QrGogmDkZgpCYB9A)h+_K} z+NI=ac#0j+3}_)}ozNn*jm8%PM47s8cQtUNV^$?frP$D5uVXX*hQAo4k!$K4;Z*z? z>Wq)jWW%40Hv9{*MTIDHWNJh#nCannZH=aAJN4gEXUV8?NojbCfuc{I(eWmkG3_l4 zvvsOD>mf?REXGh4ZQor|=8Ui5qXwL&@|$*iA+e~;=&P0;`)`)bsZ*!d+6E_d z$rFBia6+?1-lHB7r)@|c9P#1WBQ{bos#N;CirsxppY!lO0<^)iXw*kFmo81b9*#7J z;E^9>Aub(mvp__L;Ku+Qa*z+h{}mMh^T&!zdxT$r{$+<8a>#xz!}B;OWSG@4@BH-6 z^3S*L+`IG9y}6q|-guio3A&{waZEQNv*QI;qLxFBq_?gK%JsR4%b?s4s2Ga;EW$a2 z^8ikavwW4)Y%OP5+38%V&Ug z)!N?TFXB{9-UmujZL(TnKu?ap0Q!xAZpak;o*+@eE6c&y*JSjOT}k>8e;Lh@{xXKWR}iG< zWT6LXTI`E=oIz*dR{_$g|K}Xyt$1g%2Y1`(3aBe06cA(>MoT?u+cozy!zVsX?uct^2cc$K+%JAj_9OzJ z&xG9FWfiq}Q1qs{i7rm2QqRf!gP%}*5aB2SRxVyas3G7D*O(^_l{N;B!-n+|JBeOq Up>KtVcrP_%oL7lTLVFPZ0U}RtrvLx| delta 2446 zcmbtWNo*WN6z%Gn>FMcZ7SCckHnHQ_PR1r)5)x$>nesA~|GY1H&bAE&e(!wsS1vQW9_=N+tdDk^mEe4kC{&?=^7<>?(fJ6FTG^!Z9Xme4w`K98Of(;y3Kb=K0`a( zd>0MPDA}$}bTvzac6~qjgperzPVG+wKqi6>*I_IUB-8odYR|C*k{!4dF1k7982j;%k}+GiRycz-pYI4eTZ(d^s=^8iqBS-wX_qVg5(p#()Vt zvk+{6Q(2Y8kl6*WiFpL&pMrZvx{>Tb7(^Jk2ctjiv9gXo&3N)1fal z-z+z@;Z`SXyGCR793AT!gO5NiGW^-pqpQISOmyy zkPV?2l|-cNLy@v^6mD}drU(-=mh(3q;9qOI$)W4NX-Cv&w`YJ&pz9X$iR}Qg z{RlD#_o^*}W*V;;J*1CcF?O|%!zN+nX{A`rxnACDxNJA-J&l0575W0JHR`z{72&G$ zt_y_ph7I737ZIL9kU2E`93Di0OxzxzgmKoXmoJ~LQK!sKpny~asS8pS+7NZTe6hSe z!HTebaXZ6PeA=w^zX6&B%+cK+_88{-Ir!XLD*ut}<9X%$$cpKOH_}bBq?Q8BKq&*C37-XDCwwsqckZfAl%+qbrKScNM_0nla4Ak> zi|QI-r)a7f&c&PIjl@-jD00P?D|=~r>&hBg+Utc&dMPTc#y{d^yO&(zSM0uS%j;_1 zJYas z*TzIU4@ugAc>p69JdMJnq2W)}RWhf{D0516FsOLliv~FNEx#S=JJK`F#-IrIuRfC< z@UZTeW8esE7Gys=%%6#+JEwu0736>*6HMNLV`wYGE3vNEPXc+32;1-c+=Zf3rmi3d zvpcpl|MttyWb;38Av84k62i*}r}^zz=V%|2cshF(LAEhY1%^%vtL!X0<;k498+zRCnu<#kq*bEFj2{ zV?H|d7IR8Y!Fw?Itcc2(@`vWxmRb?7J$%05w^HXwg%76-t?knt-?uYpMfMCnL2}Ax zBM*)K{=$wpPaH(bwHQ+Hs4iw&v-41#4&5mo~( z+b!a>l&>z-#@vfF<`o*A%T!npW?OvG^XmTV803qYfn;dwBE0r4JPaF|{>d=N=dF6J zTz1DQIJ8~)vWQIEPNBw}G3Qdjse8p*)nyTWCzF|$7aRW&uzd)J5O8F(MT80hy16Ab g8RaO*gnk^(X_TFl*kbNc06y0_ZceF0CDsVyzu`0tH2?qr diff --git a/polls/views/__pycache__/task.cpython-38.pyc b/polls/views/__pycache__/task.cpython-38.pyc index 5bcf9fe41c0e1139d22f1dd26f63b6725505930b..2ff5b5b6308c8cd866e22ae865c984077d599a3a 100644 GIT binary patch delta 1112 zcmZ9K%WD%+6vlHh$xL2TlQz#LGbw4cO@d7yidu!LRHz6RU#*=|($ty8)TAkQl0_j! zF|L%Nz3EbH3akiD!y@O_n`2 z_PhW0cfPSMEAVkWyE0h`YhkeIHr-v0RH9n664PRpPOTGchG@8TkM6x^YeEyWIFEh0 zyb~vQ+@>Gci4{ZC{dxc+O3LJC;`n;CgG?w&yZE4xudJnSz5t)lDAWu+Kfl7N zGh%M^7%OZ8Rs}MGohK2;F>C)XYdK4mLeWTr%>EY6bIFzNC|*EMNCAe0_NL+mpB3kDq?u+$7xc z(|9C`h#~kyak}kMMZVS)mA#6{mpelTyz$!!>{1Zi%EW#vG0U$yg6bRs?c8w@)gc7` zMlUKE(TCu6Tt_v{V99$g0Oy~<0-xuK7bX7#xc6fi^2s$+e6TcAX}M)OA7=_nBZz)P z4#6EAL^VSdUqqcixzAx1S}yhs^623Nz3e*=dAi{n?B-tZ-GOhHhSrz%ouxm0p>~tq zVA>gM5}9L6Cuv0fbb&t(&94{CoAcEI(fcb^-6)%_=fqzZ-z&>bkV!-yF^Aau0$0N{ V*VYq_LQt@S9ehE~3}?y?{{Yod}T_0HBW1#sO%v>aRt z_6xZ&x>=P?Jw~_FY^Y@!hjGMYEsO|SbjTJj3}gu$Na_JGdRl6VCc%s{XfE43MT|n( z!1>8V7QG{Nq`FyP8|u+S(gQ0`0*-^%wcATSNg>wGmNYmVf)xn}CddJ>ML-jSUAtfz zWS-1Tn?)mU8D+a_+9Xz))Im_ZVU&p*ESXtFlleWcvze~QX?FH&xov+C94&wVU?1Qt zfG3U6UvjcjQ;7yHo>8u3BV2W8(`f_x;%$%N11=Y&+z@x{jDc&w%4Ej*w`Rk z_g>f%21Ee7z8DSrk`nJ~l%Db>B;H#eo$xiRG{CAjfD0VoBd~MS5s3E#K+TGXU>yYT z9EZSC0EYowoNHiRXRwu>X8`q&Lx9(_;scZG&!vY)=~O-j7B4KtEKPB)fOj?up&mdR zpdG;V?F0)Bw-K??yzVot{Iq$?v}O!Uu0U|l4ODyB!{GW4(R==jC`aG>GncqLTn@w= z){v8Y&*s3t>oY9p48k&4@Q4MOOfYImI-q<$uLp3!nwgv{5Zqpx!$#3^-Wq>;yleQ6 hk}MzxfW5ma