From afc79416b2b76516f1c5df5d4689c892d93c35b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20Nagy?= <31888571+otapi@users.noreply.github.com> Date: Sat, 6 Apr 2019 23:38:59 +0200 Subject: [PATCH 1/4] HU Translation updates Translation of the new untranslated strings --- cps/translations/hu/LC_MESSAGES/messages.mo | Bin 48094 -> 36580 bytes cps/translations/hu/LC_MESSAGES/messages.po | 371 ++++++-------------- 2 files changed, 111 insertions(+), 260 deletions(-) diff --git a/cps/translations/hu/LC_MESSAGES/messages.mo b/cps/translations/hu/LC_MESSAGES/messages.mo index 1f3b18f71ac1e539da9524b38155aeffb148640f..f8e6be665aabb06373d3266a50e70acbfbecf3b8 100644 GIT binary patch delta 13485 zcmZ|VcYIV;{{QitP^5+qA_Q)L009z0XcCYT2oOq$5So;Al3bEWCNu2JB$!wR1jGi2 zM@1A-6i`GggeKrBj_9uXU0t!Qiu<+f+RJw>h_3p3z2{zB{Nr~Yo;=Svx1IAj<&N&Y zdph~UyOLw?wr_l^#qm~>Wp&5TQ!Hy$vSl4hRjp+`)z7lp;&B{;uizkT+~2)^2=<{| zi0v_gbMYFShwq^78=7HRP0+#funHSlR?Lc!X+gybY=u{QZbaR%)jNN$=U$|Z)?sXe z&tVsQ1J!`9y!zw;?sMB?H|kTdHIBlbI0d`%eyf~J4i&3V57>_#@i}ac?_gK_7dAy} zpxcAybmwHCs6fo z;&A*L74p7WZUly-%41O1PscP|hI-DmsQd3lA09z$qCd0-^OExNudsz>Rl<&=ZXFc%g2iKvb&LZWZ2 zM$L_VUi~T5^|2)3=2>#EJgLS(mP*=>d6+=0}i7acpNoUub_JVEvmt1 zust?rBB{Y$P|L9oG6XSeJQ=;P5Y>(Q8326aW?9O4kkj1 z8tb)~fj6M$!~s+To<%+AZ`d7MGhXN80Mv6PVrQJ`mCI1i4Wb&j<|5*+7d%0QS{O&o z(&teTc>}xRzc3XwKI%~q)b)K)FUs`FBT@H{#l-se&KIFNdI{?OQtW_LF*3?EV^=f7Z}(?vPZWUbGH16gQ%tw++?6?WpHGfRpe5Y6yNrH7M3> zy!(Q7sL0y7#%p(0d*Oe1S0s-Z_w4g3as;SZ=6 zccV9n_1}k#dYt2#hq_=ksv(O|p{hiU{Z*)*ZbXHCJLiLZ)^DbS`mW*a)Dr#)gQIli>s>idu@+GK{SKu@ZV$h9UN(jJ>%>)5s3$jiZbgOiA#93AQP(|<>gmhg`A@y` zXHX4Om=xL;s2--F=1L}NNXB{f#n^}PrBjK2Gcs$b&{%Eo+=ZEx|AczL=bpb{Gs~6wr zybslrS5ZUJY^MA99DzBMeW-@qg1Y|*DpF5*zJhA_hp3Kxi+XO8LT_?niq`+wM23$9 zYW6S2R(Kg|tk$9;vJF#kr{{iDL*l6Q{XOcs3ud`HVH)7{e zZMGZ9MYFy2UrB{pdKsz#tGo-=p(1e`CgToNMD9n0`UL8}7rpXp*p~7;sGDZV9MlayR1a!VJ-Qin-F>JbID|d% zebi7TFK~YWrQ%S^xv2Ytn2Fb;t~-pw@FZ&W#F{O1Cry^;g{TYjP?Kc|swWQiz#z8A z^{64Z2i4&F@q9dno$xi({hy&a@C|C{8ed{r1lsC_L@;LcA*0DO0&{U9=HOL093R6e z_z^C`!Te!fS~p-ezJqPBHRB*tQTJsc8;n(oYWTgFhR4yy4-#d@zwr|HL|+`miK*Bb zuSPX&3wFm{s0YMRL-0@35VT$D_B|ACq-zn~(~_7CpdO2b~f-wKk^ z3pb%2`~WJ1C$T4fg6e7WOWmQ$#T3euQ1x?Ab7KvT!P_x01gQHz^U5uK?saLX`-fvJ zm&_zGBQb^!9zw0x)DpKrGf+KP;dveAQ@#@wq4!W@{Uz#!-=l`GbE!Mo3Q!Tb3KfBM zsL0%2%J{42hp14C{)%1k6t=+As2h{Z+~v~}Ro}%c_rf&FS=bwkP-7p(A^0E;#&=Nn zwW4=wU>6*KBb}K0L!g8T&E|Eeb-Dr5@eb63o_Qx`> zydFnTz6Z5B-aswCuQ3DDW99Con}yw|xDNHeov3BC4;$liSb#60uIpUkmUD0}=^)I^!_FD28GifUBL>TnR=fO&WrTjNit z7d8*Mvo{shz%i)M&qTfGW>f>WqVBs7i}5jRf=y{v8*GK=@qVj28BLBp*bFbiu{hbQ zUyFLsHXMx)dG#M-2IZtbx??>MHM_^68oCtK(=g`adQ<~XdY;0VTJjN@c6b^U%I0A= zrl_R71eqbMTL-)w08@e-yh?{xf#w{nq2%jGf@q?6czeP z?1?K;=kM`sKuxY^Q5`vjBk)sHq|;WqLy(QJ!Bi|IqYE~mLUjVW4^iVpMq+5*mDD3K>0z`{U^No_c4|7FE|{#U+sP+XJ1YHb>ea=bi)?UgE*h^Ni4>J ztKCVu64lc!s7d+|j>Y|`4eA@z-wU`JPQ@sQK%s)SVKq@^0`#>!lkIt zu0qvsM)mX_ulxe4hp(a<@D*xEPNPDdwAM8R713^}hRnuE=*K4bFeR9?29L{G5&~Z$ggPQ1?$`hjYeHpjHB>!RL>8fR?kzOuOiFOihb-= zbiLMHMwzJ4%tnQBDQajUI1z8cq4+B5x@On8>%JqZ17lG=u0=&;z2_aM9^dbI5P5FQ zIzdJue;+gO2h>*C>w0(V&Bi{Ii*X3n;V|5TUGRT#2L6DW8~Hc5TkirqkMbH+LvBPx zYzwx;{RtWWr^qN|FQP*G4XURFBh4K~5MusQFy?jxhI*^7GcanyrfLEZ2%w#1|jZU|drGs@jjJxWK->hY*C zEy5PK%JW7{r@R@}(I+qob?E)p6Qq9BEGA{CfMjChET>zXeB=ZYHl|J^9<* zto4oOU#Khf@?s(7rC#}7Ttb>oA~-q{@3-#eqSr~ysp*b7GF_~rIFGt}NaMV7&*M%K zzgH5+4o~qa^%vqw6*!KOdQgPcd`I& zlA&%tNk=2nyQKc4S)>!xufh%ZG5$!po%9e%#}My6aER7_DuqWW?7{=2a`IWEMdS~X@=5ii%_JS!oQsmix%ZsjF{%=_0<;QsUo=^EZ z(sIgsymQy!Rg}Auej@**SMNgqZB9&}v<$By^(8+8+mUoca1<$(w2*Q~(iNnyNjlzg zv99BMU((s*B`-f7pQ3UFPQ;bi1ly4k@qd_#FUZ%Sj?YN9lHQ~|0&l=+q_B6sBOdhf zoVJq4kHPzNttvSFO}c~hxOd&vs^r*Cxe@6~^8X~I%;!%N@1hc`VcN*uNi9P)QENhJ zX{aU`HC;w6GtZ8?$pmu?O+2?lcgL;^)!1Rj7YNkZk(#hG&YBP@b%JI7V7a+;^t^U? zzS1g7f9z<;t_W2-CT&bVQ#+<#!<%EaCN~L(Rzw_gVB81h;qg<<&*Mj%X%q5$RN2cy zVY_B|nJ?;C6DvZYh-3Tgnurq)`l_9V=6T6UruW2OQ)#vL^H^_*TnI7|VyM*XeNu5wL&#IE%_E1a--@RBvgx9GIlu{g_YUR+>4 zTU=@?mKlF8gD{nX(y4=H#*+W^;M2Nq(fO`L%qV`MjcMhe(xGoQQAYuO0A5qNd0{wqc8Z zQIcs{)wdHvYZZse%jr|lSL-j=um??LRqwWQ3w}2jf(@4k@{*W9L1&P?JRB-@A`yZ@ zKH&J6ohy9)XjWF1IZ&P5@M(2M(rj<=ER6a~eF1A8arpfst@+%; zbG=D!vjB>Gk;sZrxXfDUM687-t-Q1OYFST{xxB97h2_nX8kNgzF>I`6FJwes4>-%MP^bYWBBM6?sSeiWtn+(xptnf#0l6rStGKtTP(=*&V|Cc zc2USF^G7+8lQpE_y~v!Ty`;o%mxroL!akPpvamlAiSLcZce9W< zZ&$?+);iHDr~bqyE#rEBydmr}SJn(mEsXE3t#r!ktjSKG!WXFz#%x ziA@3Da$a<_F57geA8Br^-`H$|8WXImHCwOf(JJ7GT? z4!cg7Q(xFZWDu}kB7tIZ4Rz9FhlpI__?M?=-|?ZG;`+9@XpG>*Niq~ZJP zW+pY1-|$IN=bB(usfL8zg4PE#xLjmzT|c7jB zTI(}MHuN-E8;6><8|RphHrj3Ds{(9(ye|}C+bQvx*KZo#bT-%e(oEk?q2vj+S-z>O z-)9G%YI~Vesd-ZtKNyYjcCE{JLkW#2W5B9>%S$7nK+vCvUi?U<=3iAbzPFYOsP)-X zLLsgDNntj|%uqDTO6<~lEBk0UOE12?++2Qh_vX{jP8jp#%`;4nx!BxnI-2iHPxIX^ zmzq_#R;Cu#Ie}U$@mJl|2PPxpmYpiI>$cwJ?b{YKjNV+3ls1DY?F8*mpw<@&MWfca zWnVPl3$kl>n>>MVM}0oNe<5a_KQVE*%UwRl0#S#JEq<`1#CE(XnX4V1&ROw0D!qBk zoBwggSkvpyj%o4hDw+FL{I7k#%aTU zZySsA+s@)xzlHJaX5*NLcmK`od$5Dq{Ge&b-qR|no7+!Y%Zc4N%516D)X;#N;)h-z znjZ+pcdJ9uL5bB`>npFbD?{a>NKGKhFTr}Ijjt@R65V~*iJI+KbVw%Hr}u6$J0G5M z!JMeC#2?^)wiCabu%_!HH659N?3s4pcl*xPM~0iBkM`-oS3}E3Uk`T~oy}?FeCGZ~ z^BYb-x+=+R*w?SIJ~ifrecjEOeYxf@4gJjE{rUY0BGp8X9|%E4C&1?-6y<-2{H<=8 z``lc!Y5$7sb2fQCP@!;`C|DED{n{l$kXXpf(5UHi;8-j%*#@zT1nXNB7CZP^h$pUKRW^_^Rt`~NNI{`_FM!`CBFmzZMKR7R|!|G}e4 zQ}}tJZ>}{teyqHlucA}VPmObT;d6KOP?a^07Wt|YjkV@5x&eL%v7wvm5BG0eQ0@fH zhllfX3fY{0Kit|Zs#x$*hXD`P`2+M!d;IcHpftq#HFF-HXI^^z)Aoryh>v07M>uik Z8}aOs2`x(_@q<-WEYwJuX?pa{{|7nEy~O|k literal 48094 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 Date: Sun, 14 Apr 2019 14:08:49 +0200 Subject: [PATCH 2/4] Fix delete domain entries Fix error handling smtp.authentication error --- cps/static/js/table.js | 5 +++-- cps/worker.py | 6 ++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/cps/static/js/table.js b/cps/static/js/table.js index 1c828267..420478dc 100644 --- a/cps/static/js/table.js +++ b/cps/static/js/table.js @@ -65,11 +65,12 @@ $(function() { }); }); -/*function TableActions (value, row, index) { +/* Function for deleting domain restrictions */ +function TableActions (value, row, index) { return [ "", "", "" ].join(""); -}*/ +} diff --git a/cps/worker.py b/cps/worker.py index 65d4a850..2cc2b337 100644 --- a/cps/worker.py +++ b/cps/worker.py @@ -468,9 +468,9 @@ class WorkerThread(threading.Thread): except (MemoryError) as e: self._handleError(u'Error sending email: ' + e.message) return None - except (smtplib.SMTPException) as e: + except (smtplib.SMTPException, smtplib.SMTPAuthenticationError) as e: if hasattr(e, "smtp_error"): - text = e.smtp_error.replace("\n",'. ') + text = e.smtp_error.decode('utf-8').replace("\n",'. ') elif hasattr(e, "message"): text = e.message else: @@ -495,7 +495,6 @@ class WorkerThread(threading.Thread): def _handleError(self, error_message): web.app.logger.error(error_message) - # self.queue[self.current]['status'] = STAT_FAIL self.UIqueue[self.current]['stat'] = STAT_FAIL self.UIqueue[self.current]['progress'] = "100 %" self.UIqueue[self.current]['runtime'] = self._formatRuntime( @@ -503,7 +502,6 @@ class WorkerThread(threading.Thread): self.UIqueue[self.current]['message'] = error_message def _handleSuccess(self): - # self.queue[self.current]['status'] = STAT_FINISH_SUCCESS self.UIqueue[self.current]['stat'] = STAT_FINISH_SUCCESS self.UIqueue[self.current]['progress'] = "100 %" self.UIqueue[self.current]['runtime'] = self._formatRuntime( From 4552208c02e41448eb8dca9d6ab884994c0529db Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Sun, 14 Apr 2019 16:37:57 +0200 Subject: [PATCH 3/4] Fix #848 --- cps/templates/detail.html | 2 +- cps/ub.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cps/templates/detail.html b/cps/templates/detail.html index e1c398ed..1dbb7a6c 100644 --- a/cps/templates/detail.html +++ b/cps/templates/detail.html @@ -40,7 +40,7 @@ {% endif %} {% endif %} - {% if g.user.kindle_mail and g.user.is_authenticated and kindle_list %} + {% if g.user.kindle_mail and kindle_list %} {% if kindle_list.__len__() == 1 %} {{kindle_list[0]['text']}} {% else %} diff --git a/cps/ub.py b/cps/ub.py index 4b69a457..caa320ae 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -211,6 +211,7 @@ class Anonymous(AnonymousUserMixin, UserBase): self.locale = data.locale self.mature_content = data.mature_content self.anon_browse = settings.config_anonbrowse + self.kindle_mail = data.kindle_mail def role_admin(self): return False From 55bdd13fb1bd79b23f8f3c7cfddc36425feac1b5 Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Sun, 14 Apr 2019 17:54:18 +0200 Subject: [PATCH 4/4] Fix #877 --- cps/web.py | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/cps/web.py b/cps/web.py index 4cc82f4b..0eb8e44e 100644 --- a/cps/web.py +++ b/cps/web.py @@ -78,6 +78,7 @@ import server from reverseproxy import ReverseProxied from updater import updater_thread import hashlib +import unidecode try: from googleapiclient.errors import HttpError @@ -665,16 +666,23 @@ def get_search_results(term): q = list() authorterms = re.split("[, ]+", term) for authorterm in authorterms: - q.append(db.Books.authors.any(db.Authors.name.ilike("%" + authorterm + "%"))) + q.append(db.Books.authors.any(db.or_(db.Authors.name.ilike("%" + authorterm + "%"), + db.Authors.name.ilike("%" + unidecode.unidecode(authorterm) + "%")))) db.session.connection().connection.connection.create_function("lower", 1, db.lcase) - db.Books.authors.any(db.Authors.name.ilike("%" + term + "%")) + db.Books.authors.any(db.or_(db.Authors.name.ilike("%" + term + "%"), + db.Authors.name.ilike("%" + unidecode.unidecode(term) + "%"))) return db.session.query(db.Books).filter(common_filters()).filter( db.or_(db.Books.tags.any(db.Tags.name.ilike("%" + term + "%")), db.Books.series.any(db.Series.name.ilike("%" + term + "%")), db.Books.authors.any(and_(*q)), db.Books.publishers.any(db.Publishers.name.ilike("%" + term + "%")), - db.Books.title.ilike("%" + term + "%"))).all() + db.Books.title.ilike("%" + term + "%"), + db.Books.tags.any(db.Tags.name.ilike("%" + unidecode.unidecode(term) + "%")), + db.Books.series.any(db.Series.name.ilike("%" + unidecode.unidecode(term) + "%")), + db.Books.publishers.any(db.Publishers.name.ilike("%" + unidecode.unidecode(term) + "%")), + db.Books.title.ilike("%" + unidecode.unidecode(term) + "%") + )).all() def feed_search(term): @@ -1969,15 +1977,20 @@ def advanced_search(): searchterm = " + ".join(filter(None, searchterm)) q = q.filter() if author_name: - q = q.filter(db.Books.authors.any(db.Authors.name.ilike("%" + author_name + "%"))) + q = q.filter(db.Books.authors.any(db.or_(db.Authors.name.ilike("%" + author_name + "%"), + db.Authors.name.ilike("%" + unidecode.unidecode(author_name) + + "%")))) if book_title: - q = q.filter(db.Books.title.ilike("%" + book_title + "%")) + q = q.filter(db.or_(db.Books.title.ilike("%" + book_title + "%"), + db.Books.title.ilike("%" + unidecode.unidecode(book_title) + "%"))) if pub_start: q = q.filter(db.Books.pubdate >= pub_start) if pub_end: q = q.filter(db.Books.pubdate <= pub_end) if publisher: - q = q.filter(db.Books.publishers.any(db.Publishers.name.ilike("%" + publisher + "%"))) + q = q.filter(db.Books.publishers.any(db.or_(db.Publishers.name.ilike("%" + publisher + "%"), + db.Publishers.name.ilike("%" + unidecode.unidecode(publisher) + + "%"),))) for tag in include_tag_inputs: q = q.filter(db.Books.tags.any(db.Tags.id == tag)) for tag in exclude_tag_inputs: @@ -2000,7 +2013,9 @@ def advanced_search(): rating_low = int(rating_low) *2 q = q.filter(db.Books.ratings.any(db.Ratings.rating >= rating_low)) if description: - q = q.filter(db.Books.comments.any(db.Comments.text.ilike("%" + description + "%"))) + q = q.filter(db.Books.comments.any(db.or_(db.Comments.text.ilike("%" + description + "%"), + db.Comments.text.ilike("%" + unidecode.unidecode(description) + + "%")))) # search custom culumns for c in cc: @@ -2015,7 +2030,8 @@ def advanced_search(): db.cc_classes[c.id].value == custom_query )) else: q = q.filter(getattr(db.Books, 'custom_column_'+str(c.id)).any( - db.cc_classes[c.id].value.ilike("%" + custom_query + "%"))) + db.or_(db.cc_classes[c.id].value.ilike("%" + custom_query + "%"), + db.cc_classes[c.id].value.ilike("%" + unidecode.unidecode(custom_query) + "%")))) q = q.all() ids = list() for element in q: