From 32cbc59ec63e2bbf21c8e58d1cec5b9f890999fa Mon Sep 17 00:00:00 2001
From: Charles Haley <>
Date: Sun, 20 Feb 2011 13:20:55 +0000
Subject: [PATCH 01/24] Fix #9071: Author listing does not show names with
double quotes (assuming I understand the report)
---
src/calibre/gui2/tag_view.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py
index c2b0e4638b..3af3271921 100644
--- a/src/calibre/gui2/tag_view.py
+++ b/src/calibre/gui2/tag_view.py
@@ -1096,7 +1096,8 @@ class TagsModel(QAbstractItemModel): # {{{
if tag in nodes_seen:
continue
nodes_seen.add(tag)
- ans.append('%s%s:"=%s"'%(prefix, category, tag.name))
+ ans.append('%s%s:"=%s"'%(prefix, category,
+ tag.name.replace(r'"', r'\"')))
return ans
def find_item_node(self, key, txt, start_path):
From e96edfd432aa468676787e3058e4d8ab7b2f5610 Mon Sep 17 00:00:00 2001
From: Kovid Goyal ]*>)', '\g', re.DOTALL|re.IGNORECASE),
- lambda match: '
', re.DOTALL|re.IGNORECASE),
- lambda match: ''),
- (re.compile(r'', re.DOTALL|re.IGNORECASE), # for entertainment page
- lambda match: '')
+ (re.compile(r''),
- (re.compile(r'
', re.DOTALL|re.IGNORECASE),
+ lambda match: '
', re.DOTALL|re.IGNORECASE),
+ lambda match: ''),
+ (re.compile(r'', re.DOTALL|re.IGNORECASE), # for entertainment page
+ lambda match: '')
]
def image_url_processor(cls, baseurl, url):
@@ -107,6 +108,9 @@ class MPHKRecipe(BasicNewsRecipe):
def get_fetchdate(self):
return self.get_dtlocal().strftime("%Y%m%d")
+ def get_fetchformatteddate(self):
+ return self.get_dtlocal().strftime("%Y-%m-%d")
+
def get_fetchday(self):
# convert UTC to local hk time - at around HKT 6.00am, all news are available
return self.get_dtlocal().strftime("%d")
@@ -121,84 +125,66 @@ class MPHKRecipe(BasicNewsRecipe):
return cover
def parse_index(self):
- feeds = []
- dateStr = self.get_fetchdate()
- for title, url in [(u'\u8981\u805e Headline', 'http://news.mingpao.com/' + dateStr + '/gaindex.htm'),
- (u'\u6559\u80b2 Education', 'http://news.mingpao.com/' + dateStr + '/gfindex.htm'),
- (u'\u6e2f\u805e Local', 'http://news.mingpao.com/' + dateStr + '/gbindex.htm'),
- (u'\u793e\u8a55\u2027\u7b46\u9663 Editorial', 'http://news.mingpao.com/' + dateStr + '/mrindex.htm'),
- (u'\u8ad6\u58c7 Forum', 'http://news.mingpao.com/' + dateStr + '/faindex.htm'),
- (u'\u4e2d\u570b China', 'http://news.mingpao.com/' + dateStr + '/caindex.htm'),
- (u'\u570b\u969b World', 'http://news.mingpao.com/' + dateStr + '/taindex.htm'),
- ('Tech News', 'http://news.mingpao.com/' + dateStr + '/naindex.htm'),
- (u'\u9ad4\u80b2 Sport', 'http://news.mingpao.com/' + dateStr + '/spindex.htm'),
- (u'\u526f\u520a Supplement', 'http://news.mingpao.com/' + dateStr + '/jaindex.htm'),
- (u'\u82f1\u6587 English', 'http://news.mingpao.com/' + dateStr + '/emindex.htm')]:
- articles = self.parse_section(url)
- if articles:
- feeds.append((title, articles))
- # special - finance
- fin_articles = self.parse_fin_section('http://www.mpfinance.com/htm/Finance/' + dateStr + '/News/ea,eb,ecindex.htm')
- if fin_articles:
- feeds.append((u'\u7d93\u6fdf Finance', fin_articles))
- # special - eco-friendly
- # eco_articles = self.parse_eco_section('http://tssl.mingpao.com/htm/marketing/eco/cfm/Eco1.cfm')
- # if eco_articles:
- # feeds.append((u'\u74b0\u4fdd Eco News', eco_articles))
- # special - entertainment
- ent_articles = self.parse_ent_section('http://ol.mingpao.com/cfm/star1.cfm')
- if ent_articles:
- feeds.append((u'\u5f71\u8996 Entertainment', ent_articles))
- return feeds
+ feeds = []
+ dateStr = self.get_fetchdate()
+ for title, url in [(u'\u8981\u805e Headline', 'http://news.mingpao.com/' + dateStr + '/gaindex.htm'),
+ (u'\u6e2f\u805e Local', 'http://news.mingpao.com/' + dateStr + '/gbindex.htm'),
+ (u'\u793e\u8a55/\u7b46\u9663 Editorial', 'http://news.mingpao.com/' + dateStr + '/mrindex.htm'),
+ (u'\u8ad6\u58c7 Forum', 'http://news.mingpao.com/' + dateStr + '/faindex.htm'),
+ (u'\u4e2d\u570b China', 'http://news.mingpao.com/' + dateStr + '/caindex.htm'),
+ (u'\u570b\u969b World', 'http://news.mingpao.com/' + dateStr + '/taindex.htm'),
+ ('Tech News', 'http://news.mingpao.com/' + dateStr + '/naindex.htm'),
+ (u'\u6559\u80b2 Education', 'http://news.mingpao.com/' + dateStr + '/gfindex.htm'),
+ (u'\u9ad4\u80b2 Sport', 'http://news.mingpao.com/' + dateStr + '/spindex.htm'),
+ (u'\u526f\u520a Supplement', 'http://news.mingpao.com/' + dateStr + '/jaindex.htm'),
+ (u'\u82f1\u6587 English', 'http://news.mingpao.com/' + dateStr + '/emindex.htm')]:
+ articles = self.parse_section(url)
+ if articles:
+ feeds.append((title, articles))
+ # special - finance
+ fin_articles = self.parse_fin_section('http://www.mpfinance.com/htm/Finance/' + dateStr + '/News/ea,eb,ecindex.htm')
+ if fin_articles:
+ feeds.append((u'\u7d93\u6fdf Finance', fin_articles))
+ # special - entertainment
+ ent_articles = self.parse_ent_section('http://ol.mingpao.com/cfm/star1.cfm')
+ if ent_articles:
+ feeds.append((u'\u5f71\u8996 Film/TV', ent_articles))
+ return feeds
def parse_section(self, url):
- dateStr = self.get_fetchdate()
- soup = self.index_to_soup(url)
- divs = soup.findAll(attrs={'class': ['bullet','bullet_grey']})
- current_articles = []
- included_urls = []
- divs.reverse()
- for i in divs:
- a = i.find('a', href = True)
- title = self.tag_to_string(a)
- url = a.get('href', False)
- url = 'http://news.mingpao.com/' + dateStr + '/' +url
- if url not in included_urls and url.rfind('Redirect') == -1:
- current_articles.append({'title': title, 'url': url, 'description':'', 'date':''})
- included_urls.append(url)
- current_articles.reverse()
- return current_articles
+ dateStr = self.get_fetchdate()
+ soup = self.index_to_soup(url)
+ divs = soup.findAll(attrs={'class': ['bullet','bullet_grey']})
+ current_articles = []
+ included_urls = []
+ divs.reverse()
+ for i in divs:
+ a = i.find('a', href = True)
+ title = self.tag_to_string(a)
+ url = a.get('href', False)
+ url = 'http://news.mingpao.com/' + dateStr + '/' +url
+ if url not in included_urls and url.rfind('Redirect') == -1:
+ current_articles.append({'title': title, 'url': url, 'description':'', 'date':''})
+ included_urls.append(url)
+ current_articles.reverse()
+ return current_articles
def parse_fin_section(self, url):
dateStr = self.get_fetchdate()
soup = self.index_to_soup(url)
a = soup.findAll('a', href= True)
current_articles = []
- for i in a:
- url = i.get('href', False)
- if not url.rfind(dateStr) == -1 and url.rfind('index') == -1:
- title = self.tag_to_string(i)
- url = 'http://www.mpfinance.com/cfm/' +url
- current_articles.append({'title': title, 'url': url, 'description':''})
- return current_articles
-
- def parse_eco_section(self, url):
- dateStr = self.get_fetchdate()
- soup = self.index_to_soup(url)
- divs = soup.findAll(attrs={'class': ['bullet']})
- current_articles = []
included_urls = []
- for i in divs:
- a = i.find('a', href = True)
- title = self.tag_to_string(a)
- url = a.get('href', False)
- url = 'http://tssl.mingpao.com/htm/marketing/eco/cfm/' +url
- if url not in included_urls and url.rfind('Redirect') == -1 and not url.rfind('.txt') == -1 and not url.rfind(dateStr) == -1:
+ for i in a:
+ url = 'http://www.mpfinance.com/cfm/' + i.get('href', False)
+ if url not in included_urls and not url.rfind(dateStr) == -1 and url.rfind('index') == -1:
+ title = self.tag_to_string(i)
current_articles.append({'title': title, 'url': url, 'description':''})
included_urls.append(url)
return current_articles
def parse_ent_section(self, url):
+ self.get_fetchdate()
soup = self.index_to_soup(url)
a = soup.findAll('a', href=True)
a.reverse()
@@ -223,67 +209,71 @@ class MPHKRecipe(BasicNewsRecipe):
return soup
def create_opf(self, feeds, dir=None):
- if self.IsKindleUsed == False:
- super(MPHKRecipe,self).create_opf(feeds, dir)
- return
if dir is None:
dir = self.output_dir
- title = self.short_title()
- title += ' ' + self.get_fetchdate()
- #if self.output_profile.periodical_date_in_title:
- # title += strftime(self.timefmt)
- mi = MetaInformation(title, [__appname__])
- mi.publisher = __appname__
- mi.author_sort = __appname__
- mi.publication_type = self.publication_type+':'+self.short_title()
- #mi.timestamp = nowf()
- mi.timestamp = self.get_dtlocal()
- mi.comments = self.description
- if not isinstance(mi.comments, unicode):
- mi.comments = mi.comments.decode('utf-8', 'replace')
- #mi.pubdate = nowf()
- mi.pubdate = self.get_dtlocal()
- opf_path = os.path.join(dir, 'index.opf')
- ncx_path = os.path.join(dir, 'index.ncx')
- opf = OPFCreator(dir, mi)
- # Add mastheadImage entry to '),
+ (re.compile(r'
Czytaj dalej:
'), lambda match: '')]
+
From 3229f73b3ef683f5f3d584e7f2f92939c32e0cec Mon Sep 17 00:00:00 2001
From: Kovid Goyal (
]*>\s*){1,})(?P
', self.processed_html) - self.processed_html = re.sub(r'(?i)(?P]*>)\s*(?P
(]*>\s*){1,})', '\g'+'\g', self.processed_html) + self.processed_html = re.sub(r'(?i)(?P ((blockquote|div)[^>]*>\s*){1,})(?P]*>)', '\g '+'\g ', self.processed_html) + self.processed_html = re.sub(r'(?i)(?P]*>)\s*(?P
(<(blockquote|div)[^>]*>\s*){1,})', '\g'+'\g', self.processed_html) def remove_random_bytes(self, html): From 7324d989d07fe0b841f5c6f677273da1056443e0 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 21 Feb 2011 09:25:52 -0700 Subject: [PATCH 16/24] ... --- resources/recipes/ming_pao.recipe | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/recipes/ming_pao.recipe b/resources/recipes/ming_pao.recipe index 9febcec0e5..bbdbbf7ace 100644 --- a/resources/recipes/ming_pao.recipe +++ b/resources/recipes/ming_pao.recipe @@ -31,7 +31,9 @@ class MPHKRecipe(BasicNewsRecipe): oldest_article = 1 max_articles_per_feed = 100 __author__ = 'Eddie Lau' - description = 'Hong Kong Chinese Newspaper (http://news.mingpao.com)' + description = ('Hong Kong Chinese Newspaper (http://news.mingpao.com). If' + 'you are using a Kindle with firmware < 3.1, customize the' + 'recipe') publisher = 'MingPao' category = 'Chinese, News, Hong Kong' remove_javascript = True From 2e9c93e33cba197e207bf3787a8bf5bfafaa1c60 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Mon, 21 Feb 2011 17:07:43 +0000 Subject: [PATCH 17/24] Fix #9090: Browsing user categories over OPDS gives 500 Internal server error --- src/calibre/library/server/opds.py | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/src/calibre/library/server/opds.py b/src/calibre/library/server/opds.py index ead7cf1938..72a802eaa9 100644 --- a/src/calibre/library/server/opds.py +++ b/src/calibre/library/server/opds.py @@ -313,24 +313,10 @@ class CategoryFeed(NavFeed): ignore_count = False if which == 'search': ignore_count = True - uc = None - if which.endswith(':'): - # We have a user category. Translate back to original categories - uc = {} - try: - ucs = db.prefs['user_categories'] - ucs = ucs.get(which[:-1]) - for name, category, index in ucs: - uc[name] = category - except: - import traceback - traceback.print_exc() - uc = None for item in items: - if uc: which = uc.get(item.name, which) - self.root.append(CATALOG_ENTRY(item, which, base_href, version, + self.root.append(CATALOG_ENTRY(item, item.category, base_href, version, updated, ignore_count=ignore_count, - add_kind=uc is not None)) + add_kind=which != item.category)) class CategoryGroupFeed(NavFeed): From bb01af94624a931c666e6ce82cf3a886529b2318 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 21 Feb 2011 13:56:39 -0700 Subject: [PATCH 18/24] ... --- src/calibre/library/database2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 305d1581d7..bd89e12044 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -2356,7 +2356,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): rating = int(rating) self.conn.execute('DELETE FROM books_ratings_link WHERE book=?',(id,)) rat = self.conn.get('SELECT id FROM ratings WHERE rating=?', (rating,), all=False) - rat = rat if rat else self.conn.execute('INSERT INTO ratings(rating) VALUES (?)', (rating,)).lastrowid + rat = rat if rat is not None else self.conn.execute('INSERT INTO ratings(rating) VALUES (?)', (rating,)).lastrowid self.conn.execute('INSERT INTO books_ratings_link(book, rating) VALUES (?,?)', (id, rat)) self.dirtied([id], commit=False) if commit: From 750d63d1820556a13615a0001c45fccae031a773 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 21 Feb 2011 14:31:26 -0700 Subject: [PATCH 19/24] New image for user categories --- resources/images/tb_folder.png | Bin 0 -> 6476 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/images/tb_folder.png diff --git a/resources/images/tb_folder.png b/resources/images/tb_folder.png new file mode 100644 index 0000000000000000000000000000000000000000..014529be3db5e6f7ddeb0ff8b36d2ce74f906509 GIT binary patch literal 6476 zcmV-S8MEezP) SiNVB) zNqK+@Hijtz6fsVy!3E i-}Bsi{y2BvbMEc?lv-AI>wI0O&h2|%_w4oUwbxpE?Y)H@=O16C%p`|U zT#2v;*bNM05Dc1_DHIbZ#(}4q 7zk6JYEFRF#OJt$Djy`|H8>2RNCfTF_EzYM#*(*! z7a*?vAJ@K1HcgQyQQXH1JjjtcWzHEn0nQaiP>k^b=D3@Xy*Pji4SQ;P`?-?_u)?>S z2BOUWifM{`j%ki?gynPn`8fg31rP8J=J_~PcGU%5$n0&cca#0-z$jybW9+Hyq2!e6 zw~2Jb>FQ}tEuG@|<>xW6Nd>QgkVN=V<}=JP$fua$ch5y5 @6OWHS&eYOWBJeB; zeA4e6o}tLU z^rP0AZ%%)czdiN0eErPVF`-Ea5Y#qH22I2upW)y0fyO&@M^1oVaRkLEf6ffI)oXhZ zD3jFq671Tvi+5l7ZeBC`8bqXCy2hAv-=f5&_N6F$LFQo1E;zApf(M^@knc@>FA;tS zcq9Y}Yg>u`$7WvNj|-U-pcj0S0b(Ab%C!_ogkP@hOQ1@MH;%oL+b+G0qEk#twN|om z923P6I@Xvrl~WLuQaFx-<2ng>nn?f{ZTQOgS2+62QL5EyLIjVL2mw&yG+VijJNa=h zua*;_8}4Ng!?*FcngWU72WndhhAYFo@9Ot)aQNT~RUhjZ-}mu7pD+qL62NgCN`(^T zfikY^rUzSSgVWw=KK+AF^X%-iiQs*pTH6A^VTSD-;=MfG?e%g3biyYYz~@PP_SI|s zU~ON9y_@%P_f>Z@QW!~VeMaqvVaVd*BFoFmL{Zefbrx`xL%CdLXlRIXxtul!S(tPm z>4*n^@*v+B|3*T9WfD!WL_z|WIYzmbyZBM3S9Ciayyy{e43B*jNostBga89DHZsQh zuXsOYr;LxEoNxVj5_Ro`9*f>0OUp~daf~QIkVM7TppC|8gNP6jp^6GzP_CjQ1m3at z9mEpz#N-nzV+&PAnB;LDVn4UHw+V6rw8Opp33I%vS@2X~bZC_K?0pZS1P`x4@D@7O zRD&u@{t}D+B0ARW-@c#g$F4_7A}M1GI@V~NxbY{KPx7??G-3otJM@CLj=hydy~v4~ z6Da{SiJR!Nlan07@G_*e{>cf@3ZLQ*CU{4^%^##rfbu|@-?;2IC^!W? @TCWW?N+&hjt!n|J>){simiIw1XqP5dZ^s?74&cqWc(Uy#8IC1hX9E)BJDX zeXTC z>4<7v#f!V&yS^C@tu$}m{bro9lMvQwtO`khYMi_H46kqX%(Kz}NB+(X$KK*A&*s{8 z&?Yj4fz3}Id4tTa=6(Cd0$(JgQWyLXb)#?p@P4iux~gN%x6oSS#a^8NCN>0d(D9l` zM|iPEK^J;%0xX6L!yMjrm`5ibO};QBv4O-xP|R?YBaAhNjr$_NN4_-v1}`ey7kSfT zn@X~(9)vOA2ebM^e?I-JDD%f3zkT#~SM&Zo;j`S#Pk3$J=(DwG0E)#ThqoTa(_T-v z(y^{<0MGZ(Mia(i$7^C8Q;n(=;sTE9j{pD%hY#}I#qTo3RN9wdgGLMNW*h$v_;B`` zo(b^Lhi7lX=!XwoX^L{*yho#e%b%T+|MH=~n7;1!-n#Wy&(niiV}j2j2t`uimw^IY zv*{X?D177hbSrH%zVY!Qk7`iGXhRftZUSN* dK-66Wc#%gjF5)<6M}SL;moQQqVUD@v z9YT^AK@ub? IRYddI@anh z0S;VRx)dX(cf-tXv4w^aX0Wu=z{=;#87*&vAF^V zcF8Nh|Apx%ju><8c_D$vM*+bhZToArzn}^Xs=>1&fUkZ0$R`Mco@@ZEHGb@$l^4*A zErl&inW ?R %^H)vVoWRAt_q zPpooH&)sJ_(s)%b=?U~hj4{M kvE`d0LD8U%RLcEZklO^^X zU{DCZ1^m}OG=M>0NCp5~DzI+{hi0nrqpNk#&}71=wSW%}^$gu5Z;9`Xe~%sU4vMWXC&phl0>n|w!uSHd?<0lYm}V1CoB@ZzrUIsHcrJd9rFf}!0yNk* z4vBkM<=5zk0GJD712kiJz%V?pdiQ(br(aJ#D3V%YYri3hqD?}0I^@*SDT=yCS(O`l z^V&j#4m7bBqXUgN(wzW7%;HZMku!q0y*u2Z1gGK #$nDCR}Q`;ouFt>&AB_MwK+4E1AERaAE(B{T+YL z^*?hx_y6|&ZI4^~!_)$D^;mz+xp?f%V;r47+S+5W&43LE0R+6XA0yD{4Mu=7-Vf7% zY^JY$!)%{=Z96b_fcG4F&w2Yj`$qS%Z*;-{9+T^vR>`k6V|}LUCE|O#osxnhh`+ z{4`b5MOwGLmIS8F@wJ3*@=>HCmJ;mj!wWFxLc4*hjjCBn+x+a{%`DcN&g&+k+AuW$ zH07QMaN9! 0X8O@2ItzgG6);{+{fM;fIQ(N5^ zn5&+jzL*PzATkYwv7)wH;k%>;;aY}u_u9cUozp7;re1i|nHe3U=x!_xpyNto2{dZ} zJIc36Y6q-k*dgfcnl1Z%O8SNR>tA=|sU3xwmVS!29F(UDOA-cay#)G0RNR#ohL9M1 zS(~6lk`p-0N;h#W!ltsd(*jn3+jlN;%Khb!eEaIE=r8XcaWC7tsa?WP1tp@^eii5s zMGo*y+pb#z*x5T2Nn!3JDNqj{TY8K;|L)G-9}p$i5hVA#;hGzG=PTaX_Vi=V9OLLy zM;kh$dP2>*KOP^4O|-WItZQ2%z<}Aa $ zst?Sljkixx0Jf5ZP(wJOPjF)4M2|Noi6FiJ^$fgWIuhW-%n2U&=>xE(_Uv9Ewe#(O zRoj=*4BMMoBfv|h?s=oTWvDoIdOi%lc6>2d@T0a>T)~#!dO_9~Dg)bC^v9Ee30YbD zT#_#07NdVUBC6eImV^jayL5u8J!^! &ej_P3J15U-`1`gNW`)^n8K%?4tqv?HV(K=| zi0lu8SbSFrp`v@=<_48N`-6A#FO@&U*b>hQ?p$nM+hkb3yLoE3R v8b2M1^e(y1Q89RPsghlx=6re5*xl6VOXKnLTc6>T1IN z9v74p%$198sm>@ra2=(5k?sW8s7(OCW$`WiYw3YT>)Fu1;g>~r^2ZC+1hn!79M}>c z3>_(;Bnn)G1a`c7C$yTdVx! 7*G~PX1*dM!3nJpXu2Ks|5GB&()iz`xumQvIUiL4% zjqh*$)5hFDNd4$uNzkkTdTj>IR`|_o-==@n(%eUvUmETY-d45eXoI*S^RA<0ju@p} z)iM4hm<=xe1iv_cFVAiI2NnlTrJ++u{phSs(1{4yV^+cT>IL*efaVM)YjfC%s}(r9 zWPWw(3)3po4(V7c*L7!=C^aKWL?j6ZciOlJHW8Ow$NvV$l#&ja%p}ka2^XfzW?{$a zXLIqo5r7` f#Dq47J~4i@t)x zXFkT)#_mZ5YP5QJtExM>idOZLocGwoW8C?*_W1 8x#W}!KJoJFQxKCyIy6F+Lo zC$QIKjkk79K(o5H1hX2-5}=mHxMTK}!LQ6dFx!g2p+Px@NjEYw;fe@df A1Iy07Ws$X@n!9E@6 xW^aj-U8Eu_{Mv+8xUhL{U-at} zk4&|dtBBw@ldj`1AtIu>XaLiG(9?#-8>au5|LZ88-u_qV+5p+bpzP2rYrI(^v 3^JbDRm&9h~qHfiX-D apiV#WgXZ?#8lE;qy;<-XBlXgW!@OzYVdGHh z=(Z`05=X{erR6k^h;q6#0UI|6*b{DCxR>oGU&>c6yN9UkCBn9YEV4_ugruu{X )N@Qtu}d8-PLoT>~G=b z=kDW5@7L_TjEFkj={=UJe&w_8+Pc{VP)dSs9YPnm0;prV{#kzW =7x#iVQ=`l^tu-J>Z$=GO8}(;5$Q~Ti`5V80o(Ke-ZK3q zyxBRvG59H-9{MsfBR|48aiiML?wetSFDpN9THeFubFb&n!aZy;FG a6?QfP1;i)@t2-I>_OW~U z=XvS!9c*P^<9S_RdT0WaNLB+#&_fs?=RhB*n63Om_5J)p_5CoHL{g{t0ki5S%)8GL zsKxrZt{Gsnxr`CBm(ge+%4EicolT+lZ3HGZK<9hr(my8%if!y?o7vxeo`G{LYoWWm zq|pYDplc{NXTbV_p=)TrK?5jp{BD7x4K_W{hDX;xAXx&S7eR@%Sz8YBCSbjxle~;U zM6n2|8#q^6)UrJRR{Iy`IDhDF1d1bS7OWBInps4YlJ)_=jXW}FBchYMv_Xk$QUWL? zGmxZ-wSwtzEXP`fv~SYINKNJm0bH%8l kQu(QCW+nn=+wJ!M2Vx#G}zf qy!M{oe@=N8$2+W z+y+=@kPdd6#)yf$lmHZm&Zx+5J2b$cQ0HmMz8vQVN~yM9y(1z<4V{6SdvA 56C%=bow_JCga6^?(iRcXway^X_dZe$+a?kkh3H%Z ztS5+SZ?}n-P-+Ws*5?X#grJ@Lwb5OZOmnO)h_p`(c9f~lh2y3dNFdUBe#%_->kl0@ zKrJ5-vKl~%-;Mye6R`fEI`jwFd_ZW>048kb25Nz>^GD=ZQxHVj_6MjI1W<~$d4Wdh z_BYG1CZRgz1uAK01GH}K6_RU!bp|`>N6TZPTWA0=?KOZgxdvEg5KQ~DFlnU$P(eEx z_mE_oV~s&NEb!s9vH=`rmXwH?7V$%4HsVqd8ylk9!~qOqF!h1JStD>BK~xI@#N7v) z #B+ z&asxzP6L2ZMv`nGXs`j)w8pg50LnpnT-H9v8i8`!*#IKSxGe}E(In!u^!BB5f=Q0G ziIy@`f|xj-vj5i!5E(V0#Hd!&iixxjD&$z3P;F!;7;#)RY5%Vipg7=;>o9Js0rEi5 z`a%*2TKT;)D7WO)=MSnAAf92|8E%tCs#-+{a;#~zi35m6s`J%x`+uDPCql*#8br5X zO{b_*j ZMf~QAmc3}3Hm0A|Y;#;-D3P#Ib|+VSZ%p~u zU*>ML|GU|Pu96^X;Rp6GjcATF1|_ZM2yie#_WuR~h!9Atb*shXHsHELYsXEAv?qX4 z1Y%kcz!;T}4O?FjF)e$8RVE)0nhB6h7&+K{uWr+g 5|O&MI 9-#L`?>4hc&EEiO~-;qu~GRff$I?l zFpiPfQ5qbh%%+k!L8$*ZdzPEo5B}*NeB=i={hK>{CFNom8)L98V6Fq!En@8`BgS=5 zTL;Ya4}bLIFJuqf J>b^PF0R$Y8uv{!G zxk^9#?I#|8+sE#@^?1`MK+OgK4ggmJJAq2=`*sVb=2&~M%TZ{OnEx_x2KWK+{o3c2 zZeR$EldNzv1MCJyNi>69FEb~>+J+T=MB?hr15?2Bz$svw7AqA<(`SdoAlw9uu#x~d z);5|6Fb6CERg%iR!kB9%R3TlfszADsS&sDqyEd6!y|CRfRXK9x$dMyQjvP61 Date: Mon, 21 Feb 2011 14:42:56 -0700 Subject: [PATCH 20/24] Various Romanian news sources by Silviu Coatara --- resources/images/news/7seri.png | Bin 0 -> 249 bytes resources/images/news/adevarul.png | Bin 0 -> 401 bytes resources/images/news/aventurilapescuit.png | Bin 0 -> 627 bytes resources/images/news/capital.png | Bin 0 -> 617 bytes resources/images/news/catavencu.png | Bin 0 -> 1679 bytes resources/images/news/chipro.png | Bin 0 -> 181 bytes resources/images/news/csid.png | Bin 0 -> 340 bytes resources/images/news/curierulnational.png | Bin 0 -> 1337 bytes resources/images/news/descopera.png | Bin 0 -> 686 bytes resources/images/news/ecuisine.png | Bin 0 -> 501 bytes resources/images/news/egirl.png | Bin 0 -> 507 bytes resources/images/news/fhmro.png | Bin 0 -> 836 bytes resources/images/news/gandul.png | Bin 0 -> 527 bytes resources/images/news/go4it.png | Bin 0 -> 827 bytes resources/images/news/gsp.png | Bin 0 -> 367 bytes resources/images/news/hotcity.png | Bin 0 -> 722 bytes resources/images/news/hotnews.png | Bin 0 -> 722 bytes resources/images/news/intrefete.png | Bin 0 -> 411 bytes resources/images/news/jurnalulnational.png | Bin 0 -> 863 bytes resources/images/news/kudika.png | Bin 0 -> 432 bytes resources/images/news/mediafax.png | Bin 0 -> 657 bytes resources/images/news/moneyro.png | Bin 0 -> 219 bytes resources/images/news/nationalgeoro.png | Bin 0 -> 123 bytes resources/images/news/prosport.png | Bin 0 -> 272 bytes resources/images/news/realitatea.png | Bin 0 -> 4052 bytes resources/images/news/romanialibera.png | Bin 0 -> 222 bytes resources/images/news/sfin.png | Bin 0 -> 229 bytes resources/images/news/standardmoney.png | Bin 0 -> 510 bytes resources/images/news/superbebe.png | Bin 0 -> 307 bytes resources/images/news/tabu.png | Bin 0 -> 441 bytes resources/images/news/unica.png | Bin 0 -> 327 bytes resources/images/news/ziarulfinanciar.png | Bin 0 -> 1919 bytes resources/recipes/7seri.recipe | 51 +++++++++++++++++ resources/recipes/aventurilapescuit.recipe | 51 +++++++++++++++++ resources/recipes/chipro.recipe | 52 +++++++++++++++++ resources/recipes/csid.recipe | 52 +++++++++++++++++ resources/recipes/curierulnational.recipe | 54 ++++++++++++++++++ resources/recipes/descopera.recipe | 57 +++++++++++++++++++ resources/recipes/ecuisine.recipe | 55 ++++++++++++++++++ resources/recipes/egirl.recipe | 43 ++++++++++++++ resources/recipes/fhmro.recipe | 53 ++++++++++++++++++ resources/recipes/go4it.recipe | 48 ++++++++++++++++ resources/recipes/hotcity.recipe | 43 ++++++++++++++ resources/recipes/intrefete.recipe | 52 +++++++++++++++++ resources/recipes/kudika.recipe | 47 ++++++++++++++++ resources/recipes/nationalgeoro.recipe | 48 ++++++++++++++++ resources/recipes/romanialibera.recipe | 59 ++++++++++++++++++++ resources/recipes/sfin.recipe | 55 ++++++++++++++++++ resources/recipes/superbebe.recipe | 51 +++++++++++++++++ resources/recipes/swiatkindle.recipe | 2 + resources/recipes/tabu.recipe | 54 ++++++++++++++++++ resources/recipes/unica.recipe | 56 +++++++++++++++++++ 52 files changed, 983 insertions(+) create mode 100644 resources/images/news/7seri.png create mode 100644 resources/images/news/adevarul.png create mode 100644 resources/images/news/aventurilapescuit.png create mode 100644 resources/images/news/capital.png create mode 100644 resources/images/news/catavencu.png create mode 100644 resources/images/news/chipro.png create mode 100644 resources/images/news/csid.png create mode 100644 resources/images/news/curierulnational.png create mode 100644 resources/images/news/descopera.png create mode 100644 resources/images/news/ecuisine.png create mode 100644 resources/images/news/egirl.png create mode 100644 resources/images/news/fhmro.png create mode 100644 resources/images/news/gandul.png create mode 100644 resources/images/news/go4it.png create mode 100644 resources/images/news/gsp.png create mode 100644 resources/images/news/hotcity.png create mode 100644 resources/images/news/hotnews.png create mode 100644 resources/images/news/intrefete.png create mode 100644 resources/images/news/jurnalulnational.png create mode 100644 resources/images/news/kudika.png create mode 100644 resources/images/news/mediafax.png create mode 100644 resources/images/news/moneyro.png create mode 100644 resources/images/news/nationalgeoro.png create mode 100644 resources/images/news/prosport.png create mode 100644 resources/images/news/realitatea.png create mode 100644 resources/images/news/romanialibera.png create mode 100644 resources/images/news/sfin.png create mode 100644 resources/images/news/standardmoney.png create mode 100644 resources/images/news/superbebe.png create mode 100644 resources/images/news/tabu.png create mode 100644 resources/images/news/unica.png create mode 100644 resources/images/news/ziarulfinanciar.png create mode 100644 resources/recipes/7seri.recipe create mode 100644 resources/recipes/aventurilapescuit.recipe create mode 100644 resources/recipes/chipro.recipe create mode 100644 resources/recipes/csid.recipe create mode 100644 resources/recipes/curierulnational.recipe create mode 100644 resources/recipes/descopera.recipe create mode 100644 resources/recipes/ecuisine.recipe create mode 100644 resources/recipes/egirl.recipe create mode 100644 resources/recipes/fhmro.recipe create mode 100644 resources/recipes/go4it.recipe create mode 100644 resources/recipes/hotcity.recipe create mode 100644 resources/recipes/intrefete.recipe create mode 100644 resources/recipes/kudika.recipe create mode 100644 resources/recipes/nationalgeoro.recipe create mode 100644 resources/recipes/romanialibera.recipe create mode 100644 resources/recipes/sfin.recipe create mode 100644 resources/recipes/superbebe.recipe create mode 100644 resources/recipes/tabu.recipe create mode 100644 resources/recipes/unica.recipe diff --git a/resources/images/news/7seri.png b/resources/images/news/7seri.png new file mode 100644 index 0000000000000000000000000000000000000000..dbb805cbb206af3313d364612fa89e020c07e8d3 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VE0F&4?~jU-${!<>kg$+H zX(?xzSWK8$&KQ||`Se9ZOym!cYh>~#C}a*3%b!_uSlC#~rtcR9YGW)3@(X5gcy=QV z$SLu3aSV}|8rl~vbXb9dq0+^tS?XQ=txpn{-RkemZ56aj7MLmdXy-L6Mn12`7du=e z$`t&Rv^KC$3K8w7;?nF|L(O)A&p5l0ru@*O^*6{BPM-#4r62dnMq_j(;re8|FWl r?jSz-_GaZBM_Etg^L+W9^SMobuQ8{fo89$1p#2P Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0VYXAK~y+TWB5-Y zV4zU{{~>C?-@kwVfBN+4KZqvT3;+K8`+xrY`Txg{9sB?M`Sbq_SFc *P+ML7KQ$@&|A`YP{(t-S4Xa@ w^A{Vy*q{r~#a zYYZ1+1R}^qt5&T1@8jw9UqVFmzm%9b*yh`}Z~y=M?=N8kU@G3ce*GWhqO)ht{NJ#C v{r~&-?*0G#`7`kb5F0flrvr3@2i^bxWO%k=VzksT00000NkvXXu0mjfJKNE# literal 0 HcmV?d00001 diff --git a/resources/images/news/aventurilapescuit.png b/resources/images/news/aventurilapescuit.png new file mode 100644 index 0000000000000000000000000000000000000000..f81dde2446e393338f490fb73aa01ae8cbe06ce6 GIT binary patch literal 627 zcmV-(0*w8MP) S(at( zb~`vLtzE%jFc1g`f*=eG+?}3|#$p`?>U4N HbN?$=DQ50e34+htJYU6I;mFb0+2;W zQ502G3xz`K%O` z=B*W34RUHi}s zxtBgRKOF;FABEwTJK6{sEE&E@5uRI$;0+ N002ovPDHLkV1jyyDf$2a literal 0 HcmV?d00001 diff --git a/resources/images/news/capital.png b/resources/images/news/capital.png new file mode 100644 index 0000000000000000000000000000000000000000..e5a4792cdaee223098b660d6cd94426d1862ca19 GIT binary patch literal 617 zcmV-v0+#)WP) Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0scuuK~y+Tl~ciL z6HyeMKS`PjCRP`^(CQDA(n3v}SP*n! G=H5av80AaeQA}lVsj{){24m^bZc?_`Z_K(e}11 zbWcuTKYRd1-1A5TrBX?Fe#Q)V;s>Qrw2_LA&Af9P>Pm#f0erYLiAT%Ja9!6gIA#Dc zW|PlbTX;vpPn70836oTr#kE?^7ymN>lhPl(N-1QsS)|ix6pKaL&|f2BUMC5fb8~P{ zH)dpoXLj1}-*Zg4baz;5^!E19oS!GR_ FKG_Xh ;?=8H z>+0%GpFZ8(+ vuCMPDjW{a$;lZQ7-(;A*J`yxLql)gyt#Mpp2cE0 zdi1EZwY6L>-?wjHMn=Y~SFgs$#}6Jn_~5~VUAuNQH8t(uzrUxaXL@>CEEZ>FWfc|{ zLJ(A6U+>`Hu(-H*^5jVxjh30285tRAZ*RY2#}1Rpl$e+p6BAQfT1uzW*Q{CN=jVsR z;evyM(P;F;hYy89;r#skix)3OM@P49+qQS_UM7=SQc@BhA3r!a*xK5D=&&Aof~?*04sU0q#PR#ts|eMLn@QBhHPz5d#@YdjuL zAP^9V#O>R+Z{4~Tg+dvP#+jL!W5 vD3m>W_DoDnu-R-Di}ms2$1`WnjEsz!&1OeOM>3iG^yyO@8=K3QFE1@E zeg6D;=gys ^2?VmzP`SzSFgT#^JY>~l8=v%t*z~e6DPiX`&Lj;(9qCu>(;G`iV80; zufvBAZ`iN_0D$G?<^THs4r2-YU(^2||MLWZSq4V1G`>!2sKQWuC8N3=Lv$xDPHWb6 zKvZn1M}wKkwGA!z5436lpgzGbnTIa*(FfQ7lPr>@V}3ankiZl){R>ZQq-6UH)4CV% z_K|@Xe_zxNC%H)s{c(Fsa^|62Uy+tPr?0(9hL_Wd->S&Hl&qd8*(5>DAxnnT#^2gi zpdeueU{QU~>sb3y8nLm(9zl~iSrP~4C!F0ymO%+sYVb#!os?HWy#UD&_LEO|6vDKA zECxL eX^f2cTaoD0 z&4FUdw#on0qkaIDl{hlQRmS2SnksQILdfWZYn`k?u}m5mmQ%DCLuyN1Ho$PULnH;3 zifK$FWK!7x7$H%rQNW@BL1Z*9#bRv WN zJF?*+;Z)gV4F;~Ct@W#*X%N5)c@Wo*!XcwM%$jx-DqIe0;GirpBs`M@{A}a-_pfz$ zHxFSozo>fv=4CHayjgF?m=qiWoe3kBcKu}(vMh^ACt!TGiby!9Gaz?NC^0~~B+Vf7 ztJ4c?98PNy0r?h_!8^Jv7ea+VMXMAmGPCH1-JK$|fMZxs4untcW~QQl(unHU!6P96 z-Stda!!m0CwJSy;6rd@>DAS5nGIA~a#~JTbPMiEk#RBMJRytZ)gz7-LgJKBfWy&Ve Z&?dUkN-Sg>!DP%IUq707(Wwv+{vU=2fjs~K literal 0 HcmV?d00001 diff --git a/resources/images/news/chipro.png b/resources/images/news/chipro.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3091208ff6f9cb602510ed22ac5790ab539315 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW1=4^1{rSVha^%pFmZp{# zCYGb@4-J8$j3q&S!3+-1ZlnP@fu1goAsjPJdoS`fIB+;eK3v3|agK4y?1l#%Z}xZT zKKNag86}__bH%TyGkt^8GX?9^o%c00WcQz${wYCZO7H8KNc9P?9I{M9Ui G0!dR4ZHx1pD*&R2M>v|Nl4Jrddv_=`BQY6{&6%n5@%Wnhn*t~` z14&Z|M{@%AC8=H9-yR3pdI4{}r{rC3R*_Ae_0-=NHh&7DeU0JRY`tJ__gsK%>WTUN z;hE29TMQs+3hSv)H1RUc0RP^DUjVgH8K)Ddl$%u~P0a5-|0000 Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf1kOoBK~z{r#h2Mn zRaX?o@1M}dq{bJ=R7Hbjx>QZ95*sbfpcbl#UO|krhNz%8p(xN2M5Umuh>D6RVQ2}| z0a2t*h|(&yQf*_j8e`g|P5Qd(Z#A17?l~vDm>3>*_Bm_(_P5qv=U&gd@q45 z04kdA zsjUq_=BXxGdZ4zO wU>9@2NW64&1N$r%6& zPW(>X?ykjY2xOJ<3@ZR&?|AZ3*)Vo1ioR7A3;^S6^!sYB+W`>hV127(oxUuTV*VFr zCB5{#z(DYdLY1v7s*|-})ytB7HClfFK;^G5{uF8+ms6qgb8Wv!#_@|1zP4Ca71t@N z=xJzTI06`wyjKH~@K8gmGSS%nSQm67E5GuiR9}0b&j7)mQ$2h2m&E5*DELiBFUTK% z|08v`9?I11Wm4JFp(QH2)GpE6jtlj71Tb#HVM+bEL7hnSW!+5;)b{9iJq IZkmeZ4YxZrFaQX|>CsyOw01tz zTj0yD(u5oUkob}8WYZ5CCo!*5^^O3bhx#x;pq~UJG7iXip0nq) 6JQPhV+}iJMDp05~y8VzbJ-k{b{(cdYTQCM7mZ zI0B&d{tRFUViH`r_nQW%A^jOJO~wHjKqfi66#y*5mLq`4TaRfESQ#(?V1U{01b{nE zGjjE?!^Z#s3_8OA ~mYOX1Is6>t* z^8*Gb12)u|-7r9DxWX*vNX_*JI;y*UjG%-m2SS2zcUjPyeWqDTFWgZ*1Iy@1FeoWs z0RV_*#fO8C3`U8^A$X@30Eg|Um4)`NA 5q*0L23o&=`$@=db)xVwn ZV5`vl!(`RaN-W#LzA*3c+pPPMW$p+ zi0{8=bfXsSQXO(+*!GLrD4xDi3#F$kbnY4%zc@p@^VUmLQihCKut6p)-XtISHtRF8 zsN^j&Zeg0r(2Y$@*Y)v|Evm
tVB 3ST$rJxtdnIad!ogtd~|6+ zm!yPvg^FN&fOwdV<;HuiiD1g1ZB|-OSY1PTVM5r$m(H Ap7!?l6;^sK zRcK$3n&05yiH&vq+@_+Wnh-=^x}a@3bBB3&Qd4esFlc`rR&fh6Nk>~{AYXnWXo;4O zcWjS|CUcnX&!oSzfmdi{H&b8c=H(VcT3v8>iI ?KWMw_2;xa=(BGDYV zN;XlJdVKn#T*>l4{Q?H|Iow+O78;!HIo5vW4AF5sfhIyik{&8v9uAJlg$! NW4E-o&v zu6eF`wyuGu{tP18k&ZEeKrxq?B1Zvj76xC#_+Upz$H17Pq98^sT?qyTv0}gAU}k3K zVC%3%-B^&*vx}3H{rvorlhcc{jX|C<4k#{ma&jszE><;$`d5O*+sC;eG!?`K0Bq4W Uw*MwodjJ3c07*qoM6N<$g6DxOrT_o{ literal 0 HcmV?d00001 diff --git a/resources/images/news/ecuisine.png b/resources/images/news/ecuisine.png new file mode 100644 index 0000000000000000000000000000000000000000..0f4c5ad190563779770cdcb1eba8a13e943c430e GIT binary patch literal 501 zcmV Qsy`$K>Wf+HV_2#|r`{cdJjDaHGu}xqe7z6G%(_eut zV9j#9n(Q}}=24&kq*QQIHDJPWz1{x+zGLqIqpfrI%p#fLM*vicy9DdcWY9;;^(FvB zvpFv}w{`U-&Gp|EO7C8%lZ^Y0{S-j>j@<>U$kiJ?car$;!5;NLRoyzzeaAKhu+W;M zrLY_%amS#IFw;7K02T!BSgnMmpZxk(OwQ>CBRT-Um;eTJmEcvLFgOMvo14S9W$J8q zg)R&6<(0QL<5|r#H~ac^wv+(&u7gy*d`{v fuUylJMbR(pnm5I3)YCqmp}s)00000NkvXXu0mjfE- literal 0 HcmV?d00001 diff --git a/resources/images/news/egirl.png b/resources/images/news/egirl.png new file mode 100644 index 0000000000000000000000000000000000000000..d697e45e1b33f8ea6a71e36fd26fd1884dc43b8b GIT binary patch literal 507 zcmV 1vmN4z_)ND_k5Orhw|wQdd-Yqf)wDpnmF+#GdOa8Rr`sI-WRq&hfBbgFSF z)F^HiqXdaRi4`>FPmG$oOE}_jpF^ZJNHNgCcYOKYhwm>SBElM^tR?*a0lx2}{;R0n zZsWQxhGC$po$}AcBDq|SP$;xI;9I>;CX*rmE{| )G6a7fNkNn#uX0A^&abQ0Hft6>>X0uG4J5Nw^=^yqP zjO^j%{6_) |a;Xb0#O=#=2u8@;j;%CL_06fnV1e&cT zilShe=Bg+4?KYL;^LXVZ(X-p}%Fdr1^rEkq7v;my9kCz0U-o+bM6c{%-F<^%1~JD6 xmi?Xq-xFB?f?Gpfe$Rl`lOh1xw#{8#{Q?)U2RpLKZQB3<002ovPDHLkV1l*n@_YaQ literal 0 HcmV?d00001 diff --git a/resources/images/news/fhmro.png b/resources/images/news/fhmro.png new file mode 100644 index 0000000000000000000000000000000000000000..4eaef06dfa8ae2331641f33727d2f9350fcf0b1d GIT binary patch literal 836 zcmV-K1H1f*P) Fo<5X#FtiJPc?do zWfb>8Bvw%gnk+SgsJJaNDJwDCWVx0)Zezyg{Ce?@OVEJ>=XcI`e*E}xJ`e<9)L<}d z@I3#4VVHO*6!HN81^_%XG}IXg1bS3FJw3gjVVF3}vfn9+O7cAaUN=5Ie#C4xXM8^2 z?L;DBU0ht;1=|r0hmS@gkwYq8T3V`2BobCZ5XL$?JMWPsnJ$I@L|t9o!o )#`UGA@^En& <2^l>WrDz; z1z~hG9QJ5?GC|-)QM~iX<(gD+(Zrp-y@4He`==co_a!+naA9M1wmuaMp3|x;sjB*= zjExBeMKKe4eGcdIhN6k<;c&;#YuC |>6z>86nD*^^S#$O3c`ZSOAdCV4lslbobO>bu07@?U{bYGl)2oWs z)@SU9i&3yNYkH8(#m+p}kuFc@+b2M$b?QdG)(`0&$Gi)D@UcpmC&YT`zl?JFRJ zervP8zrSCLMNzyZisCJv=if<^bPOT%yREJ5NgxpDp=tU@Nj{&ylF#Q2U0q#Ldwct% zmX?+m6h*C0PENMkY_^5&?(Q3fLP0+~Jba?8tZXA1jW(uIDLR+S87nI*(*WBag{J8r zEX#fm27_l;R#qqgz+SKSKE@bEMn;aP?`msnzp1s~@4sF&v9GW1k|asT-EQ~ef6uz1 zp&_b0akX|jov(`urlzKvF~)!~hJO`oZf*j@FmV9Du~=-Ux-&mN&;12#Dqn*^g`8vn O0000 Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0i;PpK~z{rwU f+>7SFWZo4n> z(0Et(KlhKn_3m{9AP&>#`|bS&LhBt6M*uu(-Cqts2a$TM ~1-@UdZ zp!Qk^m{^}gA7IA-s5^m(jmsIxjK=RS^?*k&oihNtJ{U=`13*$tt7Hp+8&PMOFW8U? zB?ArFRmu^7)ghw00wB3$Tu;*yfJe^=X*#jNI>CbkF!RR yN2MLfx()vO{1?11_7PI$ RqXPf{002ovPDHLkV1mh}-CO_w literal 0 HcmV?d00001 diff --git a/resources/images/news/go4it.png b/resources/images/news/go4it.png new file mode 100644 index 0000000000000000000000000000000000000000..6bf21ddc946d30b227aa8fb85a11f32e7475e409 GIT binary patch literal 827 zcmV-B1H}A^P) i)q?j+U<*s@Texw6D&-SbwO9{fg2$fmhr-fqMM<{+9SyJ zFuR)!RS#bu$IGu^rXM2e3=tipOAFl2@95+j2yoqtaNvG~oS@2l41a!xH+`G3n$irO zCXh4Y@+Q>FgnxVhW=3=8GEJ{zAa4=vd<2tI9L^p_8kJG)e2d5uigblSKSNy}#5H|r zE%W^i*!zl3EK{w%M{>`bnC)$ UB=0;l;3S*^#PL3GVUVw zqcuV=L*3rQe*G#zI|U9C#_PyNqqOqKpF9QO0?9OC^2B50S2u_^Kc>xQi1pL>OAnA< z-{iL&-=lq>qYu8sWc6{}rEgHW*+QQ?hktMt_tfk3W;amRzJ%%~ey$07Ct#`1k)>r; zPP`0+R01p@lMGd>6*7MdbN*ezAKvG$>NbZO!IVcaubkz+V Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0R%}zK~y+TrIRrV z0x=LpJ&bq<3kwT-3v2NJ79K#b7O$|ijqSEJV!5TDg`lA2iU@+uO3Yh`&ctLvEQVy+ z$^U icm#7)YW3G&m-t)5sW7#irMd14#MoLjb6XD)1$j9$ar91$Lix+7%|+pK=Uo zB8nKtzcpo|909js+YI`ZIZ*(T{cW6;jiLEs9t6`lu#Cv28L$vw)I{zV*{ Lc z48st0U6(7B$~}xRO;MC5Nz#{OGFcKu@o;Qx> ~4*(F3<9=zHHVcFh zuq=xcMe!>D5C9-EGc)_mW|JM3cY1mni^XDfKQ5Qcy`caAR8@U!7{-0SiLxwznwXeq z4L7&hY=&LeMZT@;`W#iS*Q1-8n@{=!7Zw&i+!)O@0mhj2?M|n|P{+r|cWbp8?>jk; z`yG$RYqt@YrWtb_C)n?!8jVJ@)oQW6LlA^YFc@@(le^t6RjpR +qM}+QFh^aw)uSiHO6>g{ Gzgp zaXt=&5WpCNs;Y~EARGYz$!4?b#bWVcu~ aq450T;sW)*Zp8o2 z-EJ2Q!??e_z5Phjw7Kg}15MM8qA0tmRH`Hhf-&5m|0hg>``+J~$N&HU07*qoM6N<$ Ef_#HPWdHyG literal 0 HcmV?d00001 diff --git a/resources/images/news/hotnews.png b/resources/images/news/hotnews.png new file mode 100644 index 0000000000000000000000000000000000000000..ea00fa094ccc154268b88c497b0cf0a0832ffd06 GIT binary patch literal 722 zcmV;@0xkWCP) Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0%u7?K~!i%?ODBY z!Y~ZZ%kThw3!bBE?^t*T#tsb344tyEaGe=CGBGiBVCGmmsQC=?<;TR58(-{Ra;Hlm ziSm7tEX#61nIA>w_-P_Awg)E<{5ucaZZ|rg&mF=4+T)q7%jIHK4HrT`SHcJP`#sH< zM8)gIo^f54rMa&;V2H(H(a-~3tJTWt3L|hm5kYWN!0CHuegoik`$5IarYW;! !DK0Qk>&KY@x+-D-a#0OP0#05Dseuge)xS#bvmfXDAX4^$sr zuh;4ja(W<$0DuDI>HQ9x34nx=)Cj=RbupkBtm~X20k$^ICQNc8& +6|jOicc2F^agbBDvBTS`2g z$QZmT_T>ajeN>eIYH8P1P67b0$~x^Z@@Jt=f#(7y{jXCCH3o2BzJGRaYyw;!B7Lf| zk1~X$7WO^otVZnsepH&OfjqVc>=+0EFRMl|c(K^g2r`#*?2Iu6;;#p|jEIy*;}hWZ zZMFm=590V9sL#Z K-;FTqQF)&DsqPfW*c~TOT%2SeJf(K+xQW z^0o+Gb3WqJ6@@@3*pT-o0wGo#@}0>8Ls~OLSN0zG1yknM+d{)tbpQYW07*qoM6N<$ Ef|&I;X8-^I literal 0 HcmV?d00001 diff --git a/resources/images/news/intrefete.png b/resources/images/news/intrefete.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e17c335ad14e7f6eedbab55e90665764109f20 GIT binary patch literal 411 zcmV;M0c8G(P) f}%;ZvpArp1`ocZ-Dl7W;OE;IW9p@d9wb3;CR zO0Gx9#{xoJiqyjd*H3UO4BHpfvTV2v;SoV2RY=FyS2zRlatq_wauF0sO)+T>iv^3p znSpXRG9S-mhwTQCf!}P1vcM(u^A Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0`y5lK~y+TJyJ_g zlTi@;z#s~;aG{ACNm`H%Dv1kB42j0*!stTd0&&5Dl|)P+2 ~&^~>IiL`7?67E8i zo{iCW<%mQg6z6$+dwT?a=O>Q|Jg~pNkE6pw7+=4^_$38FU)O-xh7a4*a|jqrI5;?< z!cZ`X?Z0}+Is?UoTLuTOegKHdoY=-L`dF+aH`H*^u4cv zJ%On+h;2Qj=&$?^bE1;o92xf!bh#0BdoY)jj&LXhfiudoOlpDBT1fFqf~8qS1aeg) zj4ukXn)!&{eGhW6D>`AkkbYv~Y5V*P6j#G1up|a&YY!P0u55&uUyLv-a$mUvUz`#< zFAHHgpH9NG1 9dM($5cg}#>!VYU zS;FR~pW5}8)t;@<+R{mHT!0sH@G(xsI58&^98L)>DmA8N=AkdELF+{&IvIu=enND( zu()J~eqjlLzz$~hiv*Xnj)g@tR@a;mycRoD-2>?88N@`%C)BeaR++58P*)#RUH#C_ zFOh& svgk5 zW*0FwIfK!O8H`WOLT@l)(YTC(;V}r`u4ke0W)4OkK1X|M7Bu;V2yA$0c0RM!whDw069N9*oqs+>|z)tYWn6=JbRX zjO@ Ya z?9%L{R; t89m9v_o7j4{h%2Mq|ZG19>4gNv4)f^vHT zUR2Hy(Ar1Ut&z_JcN {l-Hf1by%!K_m a-~Ir{dKyazE^Y$=0000 Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0wzgBK~y+TrISlY z)KL`1r>AaQ20`>N7iCciHDaU`1)`B*kOQ@d%A(a&n*xK1G^|mh8W(0-YFdg8l(?!z z1Qi8E2t^@TXhV-}>G%r$^n>;!tgJf zM}}c)D#`8qk%SjBWb@eQ^u7^vG(*ug2<1az9+ZaQQ(uxGJ^;t|LqRT-6u{1{5UqlV z36J2yX;F!5fy~WwWOo~q1U+4_(A)bvAK546qaH!kSv$OTu@nU5&xLTQGU#e o0H`ou4x*;tU@)W#dll&Bj-GLupVDp+8u26l>zzr*)?;U&{gy1Sk7nbJm z<)&=lqw0}qu_ydREI(yn`XcCkX_Y^)$1rClD%|8Gyzhm~rG_0 iY1ChZjgnhj zWLezk?vPx)N>I<**=*Q1DGL=#kzOTo-q(rGAHzizE?TMJ7P#MThptpWjSA`f2O^BM zLhU7}RP3!N^u#;`Z(l>J-oNc8G)hffwE}9P{kBYR-z2}T1{$uxJ#}bj6SUlzCJEsF r%x`sELLVrh592<~KPLP?EE)3$?b|qVR_2`_00000NkvXXu0mjfv?U|D literal 0 HcmV?d00001 diff --git a/resources/images/news/moneyro.png b/resources/images/news/moneyro.png new file mode 100644 index 0000000000000000000000000000000000000000..6112dddcb602b23366379aae18b3bcb6403815c7 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sDEfH31!Z9ZwBV1cKLV~B-+@(+K-garZr>o+jI>0VlxG=sIz zf6@QN$rEJam_KB)Nw!^QNHTeB(hzYrf>$BTSmTZXkAkal8{?8JH^T;*vl46x-RTh_ z552S>82tGCU*C ze~)@o*5xtbN4uSwk^8B%E0BOu&VoYzyqM&44$rj JF6*2UngHanMN|L) literal 0 HcmV?d00001 diff --git a/resources/images/news/nationalgeoro.png b/resources/images/news/nationalgeoro.png new file mode 100644 index 0000000000000000000000000000000000000000..b268af14e22e3991dadbf7e92601f4bce317939f GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uK$7H%*_91jQ^iu5dCD8 z4islB3GxeOaCmkj4akx8ba4#fn3? 2OC7#SEE>KYj7 z8X1NdnphbaSQ!}W8khqaE{SD@C>nC}Q!>*k5gH6ajEt=eOsxz|AR2a_=oAHNVDNPH Kb6Mw<&;$TmbxSb- literal 0 HcmV?d00001 diff --git a/resources/images/news/realitatea.png b/resources/images/news/realitatea.png new file mode 100644 index 0000000000000000000000000000000000000000..032c4d100e3d5d2a140d892abbdae43d38375603 GIT binary patch literal 4052 zcmV;_4=eDAP) Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf4{1q6K~!i%%~=Oj zRA(Bs#NK=FvA5WJZ%ORNlAfGovuV3glg%b-Og2$ti5)9eY=DTMB49%-AR;g-SU`Fm zK>7f~FvH#ZJ!T98!-(1JIeF*&XWE 73%(aed6_@AdpF@+FsF?nj1CXDZio_2- zKmZNhV>DQd{?!OTKy0j64}m*(RvbV 1vW`1lF~Dagq|#M^J pP{MWfxCH-`hk+i@3;kfZiZn!v49 zOI&Z?4j!#q!G=KG$#u=OYl!UH4M(b0#cHk>F<$t;gDO>SBJ*9j5 ^5} zv-Ruad?Qk&X%k$ff#+!W=32EB+I>-K{X ov;%g?)O)`Tsuv9oq< zY$OP4ic^L@Yu1>>m02P?J!g(WpOOH?^J2V9onoGQG$CD@H-k56;?|-CzGKjSDZxH> zE<%_iqJ4an73S%Q8=E)7X83S?F3Lf}LkVO9cjBL-T-?cn1hJ=X9c-%h(zBfqFl&sf zG%)#`9T!(V0LN+5u)PF;V%muDb&bY1#wFo7jTdVC!a!Z#xG@s^{H!Lll&e>9pUQNM zfMu5!bBW6R#Q)opihJtTRdzxQ-`%kz0+ k>8x(c%zJ}neBkf%$e9> z1R%zX(wwec$J}@Zr*Fp&a3Sx-h^Jv;R;99tIVEA C>_S7tdU%w%R?wb3 z3INgm;}a*Mh}SE9m;nghz8zb5vV)QLuH1GB*o&exM%wsx?u4Ko-LaL5q<;9&DuCp@ zdvU*OS48mUk4KL|$cPaNh=75E;M1oc92wXSRF%tv2jd*$Pixe6(?#7s{#fz6fQY_w z#p1op03?yCN)Dh`Ow iu)agQa#PI@p~tu7Zprk58~UAiFg)oF;G zJPDEG$0L+=(*xs9`1S6M_ #GfAGg2#7Cv;$%>@gfXWTqxvNL(#R5n<; znR!3Js?cf77#t@5-6)wCniW$=cz>%)XWZ%D4R`zWM(Dr+IK^O0342oJnngJp1kuP8 zdM$hQ9HdX5ffNEsqQVJ?2pXSt=~CJMF-r%tstqBPVpp%mRhA$t>3!FC-myy4G7Zfm z297QN=+U^L;(c#=-=|YY#rr|Mdg4C4A3AstytyL}-Q3JC&LDgE*=LAhfmT3I=Fpg| zS+kKoV`lMAFcxxLT%P^MkdgvDd0&{92PrZNSjwayIfAquHn`0=*;BO&GQz`O3_vc6 ztOG2<&XYb@D3zl3CA}Z=N`Hh68H^C_g!d0Wm|a}WdPmi_FAQ%kf_DBq eN tbnp )A{%!&(;>2T|1G*9Z07mQYTD+n(7qKoRjtI zuN4O%t>N`?;}i-B|3x}gG*;*nO8P{yzKJ8x AVg>FpF7V!aD0=fv7z6;9 zZq_X5Nh{M)UiYl0;uNw$F)$u gUyR7 zB-(FM9~1whXm}iV;OXSaxHE7dJgL`s=Uw2fx0F@HWgrC%>(-g^S2%C!(8t6;NB-x# zx Tn(ZJeVD*Z03Hl@1!2sZ0w8|u z7$i=bh@)&weCZ{K+z9}B4Wy4jnr`a*Gw(AHEdemFThm>>3@t0!T-H80ESIylZbimd zUnx6~G<`Y}TerrO9z77i_c9?Vd03qbX&yep4btd$08}6X5DKMI63_9XE7%8r%i=6z z%4Fb!_mMkq9 vA*(bQ7K<8udFQLGUCD5WaOrV;}L5W{jHj4`l`#!FQx{lH%GG> y@qH529&z7OYE(Vf3X zhMOnP=K?TLVN@fABZyfzxPN~ `27z7WCH zQ*jK81p{{^XDyBX_jkztei^csE=30Ut{5*R$cT|pvx-e%zY#}Ag;3>OfBOv)jF$>i z$aG>Z2V4PEqkGH)5zGO%7`S5aQls(mDxdxNJ(4XKc-cY~8ehQJDx~qU8yZ%tBA4k@ zFL_OyF$1YAK~flFY6?SQ%a({|T^7%4$FaO|VTYGeiki>e0TYPiW5=MPB0VAhH?V$} zw$S8#*$D?GF)a ALp3tgx>(yW_|7a(hxwUeeyK{~mb z#?m;So-KV8vd&3l(5G`Gl1+8Wq2}kvE5Fa;Brk(tQdt`%v8hTRW#ZTkit*z8sCo@> zih048^VkZ@s3jt2Fx`K{3!1zywE3DX;T_7T _BrRpJGfd>`eRgq 8vExdh_XR`(>;8LGqr6+U%={o3KGxnI;Vk5$n5axEg8f5iXefdiYyLqh zM09z%nD^X)1il7P^`e>REFBdFpuTYf_T**Kl&J`!KCfiOdVmQgmfV!uD4I8k88u4D z(1`>RJ$e*;*>&ZsRA%>;EF1FR0fJaM+`W4jD*hfo<8Be`RgPo4_U%Uuxi0{O`+iJb z_hjl(&QT!%G7@x{Gzs1`=<%r0h!{Ts!8F*DE#p0Y_k_yyWav;t5=fL0h!lHa{O%gN zti0f0v)hXbJs^k+tWZ7J%%4Ah9 F}jGJ!Y>U z{eqO-j|oUtI0Ib8F3y88n|9vaA`zrU(y|Yhr8D*y<#MLf56`8LCLsa;p{$+j)CrfF z8NImzS*MhI8dJy{U-|o|?4MiX0ec2%JEeChUj6ZqyAVh!on{P0v*R*NsVi!vwey|} zKy~O4*0ES~ZQou2ah`LWrxxfSM)|K@i?bZ1-(~kE{ex*qGjx}q@AT*fCr&d0_ 7Zq)Wn^89~2te4Y#1hkUv+;+;^z6SMifaCEv3nReNM#v<=e)tHS}WBP-A-_6RSsBUS-CqEyNg z8|Bds6~;8Td{Gcm``_b3@{P@!V<)dAPc+YPY=4@s^4Q9erLsKEl7ZSbuEP|Hz@L9c z@=YHUP^QgBFfv{#(OX*upk{3%542@Q>9cC}i`rf0`~uE@{8?3QX7?sT %;Qh8O_V3+8SG#GtV72sTqrqj z&*E?kg+aW&o9lphpX&&hJi(M5k#WB~AK1m>Fq-vJ=^XOhJdnew!A16|GVcC=9Jwr` zqb^^8KYIu_-p7uzy|ZU8?4^o1efS}KcI{H0Lm0}L%>5S+V{QoURQ~q>0000 ^jopl=J7;pBlZGCzq~lX_~X8YfcWIi<{rHt3aKMB|(0{ z3=Yq3qyaf$o-U3d5>so>-Q{ag;9yO#P1_$a_j~ mdKI;Vst0PN0IWB>pF literal 0 HcmV?d00001 diff --git a/resources/images/news/standardmoney.png b/resources/images/news/standardmoney.png new file mode 100644 index 0000000000000000000000000000000000000000..101adcb6bc4b8e2b775697a42c539b8448beb2dd GIT binary patch literal 510 zcmV Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0h38YK~y+TWB3mQ zU%vnRzijW7|H(aD{`*$1BnpGnF5G$X|EI4%Kt}v$02z`$WhYUZVV2kzF8VJUKIuP$ zQ_FvYwAugPfBycT0pt>5UEy4^1a1Jx5EyP)c<4U^F7HfOd-DI~d#}LG27ymsfBrvs z@!|gi7ajtAunTSo$S{Sd$^RL!xd!A)e4u{8K@@|)F2iQfm+!y8=Dc|K<-ZIxEI^9& zQ)mC*f8oLZ_>N7)83c39! d z{xv62yo=!~n2S8hm;YyVYr`83=WoA&8-~*$WG{iD7@U8Q0ym*^6JZyDl0LE~m_fJ_ zrGM=zOqYYQ2rL7_3 }0Kd;BY*qd#$^ZZW07*qoM6N<$f P)t-s0002& zlEm!3-0Uip`~r;Z*5v#il>7>e)JBy228`sE#O$Wj+$xOhQl$I>gw%?()WX#CB8>D7 zjPwG0ytc&T8jR#Roa}D2 3G^u41m*2Xi>pnJBBaPgtKVB~5*ve&3EV>I+D5295UtSF8X4002ovPDHLk FV1hC9h7SM$ literal 0 HcmV?d00001 diff --git a/resources/images/news/tabu.png b/resources/images/news/tabu.png new file mode 100644 index 0000000000000000000000000000000000000000..cbeeda53c5ebd95ea48811d0989613c39eefc244 GIT binary patch literal 441 zcmV;q0Y?6bP) 6pac2(!c;2A z$}$8#y0M8?Dro=<3!tE3n4l%KNv$FU2Lc~Xj*-QsJ_XOuv4_SP_WCB4ov6?tAiKJZ z?jL~fp`}T1oOFm _s{6wKBp+36}o5$buM7K}kZJ_yb)V0#DC zZ2oK^nw-Kk8f5o&$;{3`E(cKrjzgweMd# gN%=%Jrl#D jCBB>%Tqw8${oeWphrpPvWdWP(00000NkvXXu0mjfTwuVS literal 0 HcmV?d00001 diff --git a/resources/images/news/unica.png b/resources/images/news/unica.png new file mode 100644 index 0000000000000000000000000000000000000000..87e2d8d7805d1052d9eb57170f3950f35cecf8fc GIT binary patch literal 327 zcmV-N0l5B&P) h# Sq0 }Hhgj z?24@122_Fkj8y;t00DGTPE!Ct=GbNc004tYL_t&-m0gbk4#FS|MaL=*#W)@6iq$Sm zxc?Pp0+Ovs)8ys9Hf>;2O>Aq7h(ict6F3tN46IR333Ly148jpj|Abxu(jg}ZodR~U zfHx&Y7Nz?syi#;ZR7ET3D~M;Wv-Nl^JI3}U_488`Y8TpYGW!rR0OM~L=>2_E8En5@ Z)faZu3)CRek#7J1002ovPDHLkV1il>lb`?q literal 0 HcmV?d00001 diff --git a/resources/images/news/ziarulfinanciar.png b/resources/images/news/ziarulfinanciar.png new file mode 100644 index 0000000000000000000000000000000000000000..514d041a36fb76780eef65f621f0b9757891881e GIT binary patch literal 1919 zcmV-_2Y~pAP) Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf2NX#}K~z{r#g= #hda31%6@o0V%kuvAy?23F7fS!pojLwo?mg#x?)RK~ek*eP79!Jo z-gPmVTNrPc1*2!+^)coa^7QE*0oTQ3ZUtcUoDG9^CX&QWS8R#G6RBc~QZ7;GkRaTz z*iwZL{ccxfR{*K*(_p?O7$={71I5ywdHsK_eDx;e`Y(jh-5-^2Y(@2kFef|pPB>0~ z7~!zZpQGm8U4!dKXN5AS&%Xc%#26e4c??(k$$D!uz7-R%)(uI|y^6i!24s8R?NA_D zjKz0zA5np9wsvI4?MHUh9^`(r7f1K(h55^`P?)H9Nff(wBcg-`>Gwa5>daiH^$Tat zA#CmfL DJBjd%Y?dF$Q%`bG;u4k$IU_S-;GWQ_HNpS&D?iHH(UAtxa?)8_0#pI5l-JD zZhq>9rD~=k`{uh)otBC42cBT#-hwPy0uurBZqt!HF$Bh^U%?j27Nea6v&SqLbb*K$ z9;n{9%PDxPy&Z2(n8~i6sBS?50Scdd#RVXY09gbu5WwIOhzwl-zNV^?R4t7Ml!sRU zX`W2x=8JulD?xaxD`H?^y~YQrIzL#?o_7kK5)p+BJbjLi`xrct00ql0SD+rw093)l zAL*JIN?93S=2id>LdP&Nk~B?zCv5`jRJLZbO5WGkr=FIU7HsgIjs5J63<=J?Ny7rv zxd0608F;z?4Be2zVIfP?T>pzo+}jV3u{#!T^YqznjuSZm#tbUpzy#{+`T?|lJdo^@ zi9FC~Dk^;fm7fC0@Cs3X9BQ)m`#9MOSG?ww+}72J_x$FwqerVA8SqIYK>o7Tj=lW= zwKX-^L6yv6DwBI5C+H#MFL{v)2SD#WQ~Ao=!vdtR_Q~vpi)Ga+Tvu0@dgde~W4%1R z))`p#K;F_-YEO4RLRDoIKHwqJxF)Y@Q$Z;jxfbm?lYf)FH3EQ?M|S>+hhK68?Cn+c z??NB8&0mCQ_Jx@W4OMIaK%Ty 82us?~oAzWZjb} z-TCkGl#|_VSI;AQ1Ktv&c&%iE4x_;G)#%~A&Yms>V6(KKs;~$@=H)}G(ap8G@=AQ7 zn+D^50VME^_(SLmDrpA;b$55Gz#q)xIHfXXDs*TVfa8y@R7pCz9pySzUV$}~{!_jw zxAOT%UJ=gs*b(k20fv;o=pBMX>}F|t&Voda&9lZMDu~r;RnPpR$FPp4H?esJ_6~g} za=7FKKMZ?MH`>{#@>5=3&TBXUxneqN?v1QDix9E+DMU~K6K9L`m$}8i0P^0CMeaSz zVCTv0Jh{E210AgWj)hAR!G<#P-j4*3b;pCSb#}no=_px6Svfx9B+TTY4D?GNOf1!v z{;8e;t^j)N3 -4VFOf?#qBW)O;03$$_S(CKaTJ9lVaJ7{xSBE=QjvYbmS$ z0-Vn|juWrFk9e(@dKYAeEP;i|o7-9ycu8^bl>;PkOq! 1s6H*{6Xt4s!jEl!-{B3xUY8(xH2F-RGnpipsP;fkt-9H+KHNGR3 zZcqU^qbtIq&_>6L4HwbQVNzXLi7iutknSA>^OSpF^r780ANujWC|b8g0T{wRXLH`j zQR|NUmFr<)=^CkCJD>Hx{fg+xb9n ;_aVcANL$`o8bbX0MfjJ zk)#=q(#RN;@>fhjegO(j >W7)e{T2-`*z2$jAM|_#!d0?b26D*82FErXFspm4i1bR?ChOaVB5Jj zOgkA#9=?dtOkusfT>NCb?Hc}O)Hw#&K>`dlnOgxQOEONm47aN@( Date: Tue, 22 Feb 2011 10:56:01 +0800 Subject: [PATCH 21/24] handle soft breaks as defined in some mobi files --- src/calibre/ebooks/conversion/utils.py | 39 ++++++++++++++++++-------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/calibre/ebooks/conversion/utils.py b/src/calibre/ebooks/conversion/utils.py index 3559f13440..52fc537e3c 100644 --- a/src/calibre/ebooks/conversion/utils.py +++ b/src/calibre/ebooks/conversion/utils.py @@ -33,7 +33,7 @@ class HeuristicProcessor(object): self.any_multi_blank = re.compile(r'(\s* ]*>\s*
(\s*]*>\s*\s*)*){2,}', re.IGNORECASE) self.line_open = "<(?Pp|div)[^>]*>\s*(<(?P font|span|[ibu])[^>]*>)?\s*(<(?P font|span|[ibu])[^>]*>)?\s*(<(?P font|span|[ibu])[^>]*>)?\s*" self.line_close = "((?P=inner3)>)?\s*((?P=inner2)>)?\s*((?P=inner1)>)?\s*(?P=outer)>" - self.single_blank = re.compile(r'(\s* ]*>\s*
)', re.IGNORECASE) + self.single_blank = re.compile(r'(\s*<(p|div)[^>]*>\s*(p|div)>)', re.IGNORECASE) self.scene_break_open = '' self.common_in_text_endings = u'[\"\'—’”,\.!\?\…\)„\w]' self.common_in_text_beginnings = u'[\w\'\"“‘‛]' @@ -451,8 +451,8 @@ class HeuristicProcessor(object): return html def detect_whitespace(self, html): - blanks_around_headings = re.compile(r'(?P
( ]*>\s*
\s*){1,}\s*)?(?P\d+)[^>]*>.*? )(?P\s*( ]*>\s*
\s*){1,})?', re.IGNORECASE) - blanks_n_nopunct = re.compile(r'(?P( ]*>\s*
\s*){1,}\s*)?]*>\s*(<(span|[ibu]|em|strong|font)[^>]*>\s*)*.{1,100}?[^\W]((span|[ibu]|em|strong|font)>\s*)*
(?P\s*( ]*>\s*
\s*){1,})?', re.IGNORECASE) + blanks_around_headings = re.compile(r'(?P(<(p|div)[^>]*>\s*(p|div)>\s*){1,}\s*)?(?P \d+)[^>]*>.*? )(?P\s*(<(p|div)[^>]*>\s*(p|div)>\s*){1,})?', re.IGNORECASE|re.DOTALL) + blanks_n_nopunct = re.compile(r'(?P ( ]*>\s*
\s*){1,}\s*)?]*>\s*(<(span|[ibu]|em|strong|font)[^>]*>\s*)*.{1,100}?[^\W]((span|[ibu]|em|strong|font)>\s*)*
(?P\s*( ]*>\s*
\s*){1,})?', re.IGNORECASE|re.DOTALL) def merge_header_whitespace(match): initblanks = match.group('initparas') @@ -485,6 +485,21 @@ class HeuristicProcessor(object): return html def detect_soft_breaks(self, html): + line = '(?P'+self.line_open+'\s*(?P .*?)'+self.line_close+')' + line_two = '(?P '+re.sub('(ou|in|cha)', 'linetwo_', self.line_open)+'\s*(?P .*?)'+re.sub('(ou|in|cha)', 'linetwo_', self.line_close)+')' + div_break_candidate_pattern = line+'\s* ]*>\s*\s*'+line_two + div_break_candidate = re.compile(r'%s' % div_break_candidate_pattern, re.IGNORECASE|re.UNICODE) + + def convert_div_softbreaks(match): + init_is_paragraph = self.check_paragraph(match.group('init_content')) + line_two_is_paragraph = self.check_paragraph(match.group('line_two_content')) + if init_is_paragraph and line_two_is_paragraph: + return match.group('initline')+'\n\n'+match.group('line_two') + else: + return match.group(0) + + html = div_break_candidate.sub(convert_div_softbreaks, html) + if not self.blanks_deleted and self.blanks_between_paragraphs: html = self.multi_blank.sub('\n
', html) else: @@ -523,6 +538,14 @@ class HeuristicProcessor(object): return scene_break + def check_paragraph(self, content): + content = re.sub('\s*?span[^>]*>\s*', '', content) + if re.match('.*[\"\'.!?:]$', content): + #print "detected this as a paragraph" + return True + else: + return False + def abbyy_processor(self, html): abbyy_line = re.compile('((?P
[^\"]*?);?">)(?P
)|(?P.*?)(?P ]*>))', re.IGNORECASE) empty_paragraph = '\n
\n' @@ -530,14 +553,6 @@ class HeuristicProcessor(object): self.previous_was_paragraph = False html = re.sub('?a[^>]*>', '', html) - def check_paragraph(content): - content = re.sub('\s*?span[^>]*>\s*', '', content) - if re.match('.*[\"\'.!?:]$', content): - #print "detected this as a paragraph" - return True - else: - return False - def convert_styles(match): #print "raw styles are: "+match.group('styles') content = match.group('content') @@ -565,7 +580,7 @@ class HeuristicProcessor(object): return blockquote_close_loop+'\n'+image+'\n' else: styles = match.group('styles').split(';') - is_paragraph = check_paragraph(content) + is_paragraph = self.check_paragraph(content) #print "styles for this line are: "+str(styles) split_styles = [] for style in styles: From 4080f5c32c62c2d563d0903a84cf19b91585001c Mon Sep 17 00:00:00 2001 From: Kovid Goyal
Date: Tue, 22 Feb 2011 12:34:22 -0700 Subject: [PATCH 22/24] Fix #9100 (Edit metadata with comments will hang on debian/testing) --- src/calibre/gui2/comments_editor.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/comments_editor.py b/src/calibre/gui2/comments_editor.py index c7f7d8b94a..a594af739e 100644 --- a/src/calibre/gui2/comments_editor.py +++ b/src/calibre/gui2/comments_editor.py @@ -254,7 +254,8 @@ class EditorWidget(QWebView): # {{{ f = QFontInfo(QApplication.font(self)).pixelSize() style = 'font-size: %dpx;' % (f,) - for body in self.page().mainFrame().documentElement().findAll('body'): + # toList() is needed because PyQt on Debian is old/broken + for body in self.page().mainFrame().documentElement().findAll('body').toList(): body.setAttribute('style', style) self.page().setContentEditable(True) From cbaa443e065841705c8288281368c8e1fd52568b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 22 Feb 2011 13:09:59 -0700 Subject: [PATCH 23/24] EPUB Output: Do not set the file-as attribute on title elements in the OPF as the current OPF spec does not support file-as. Instead use a calibre extension to OPF. Fixes #9109 (Calibre Inserts "file-as" for author sort name and title sort name) --- src/calibre/ebooks/oeb/base.py | 2 +- src/calibre/ebooks/oeb/transforms/metadata.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index 9389964962..ccc452f1f8 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -515,7 +515,7 @@ class Metadata(object): 'publisher', 'relation', 'rights', 'source', 'subject', 'title', 'type']) CALIBRE_TERMS = set(['series', 'series_index', 'rating', 'timestamp', - 'publication_type']) + 'publication_type', 'title_sort']) OPF_ATTRS = {'role': OPF('role'), 'file-as': OPF('file-as'), 'scheme': OPF('scheme'), 'event': OPF('event'), 'type': XSI('type'), 'lang': XML('lang'), 'id': 'id'} diff --git a/src/calibre/ebooks/oeb/transforms/metadata.py b/src/calibre/ebooks/oeb/transforms/metadata.py index f1ce31f25b..19c209b74d 100644 --- a/src/calibre/ebooks/oeb/transforms/metadata.py +++ b/src/calibre/ebooks/oeb/transforms/metadata.py @@ -18,7 +18,8 @@ def meta_info_to_oeb_metadata(mi, m, log, override_input_metadata=False): if mi.title_sort: if not m.title: m.add('title', mi.title_sort) - m.title[0].file_as = mi.title_sort + m.clear('title_sort') + m.add('title_sort', mi.title_sort) if not mi.is_null('authors'): m.filter('creator', lambda x : x.role.lower() in ['aut', '']) for a in mi.authors: From dee216e6bb3eed740613efea283c6e1b61d77cb1 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 22 Feb 2011 15:13:14 -0700 Subject: [PATCH 24/24] Support for the Archos 7 tablet --- src/calibre/devices/android/driver.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index 6f77a4d96c..99679283a7 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -60,7 +60,12 @@ class ANDROID(USBMS): 0x1004 : { 0x61cc : [0x100] }, # Archos - 0x0e79 : { 0x1419: [0x0216], 0x1420 : [0x0216], 0x1422 : [0x0216]}, + 0x0e79 : { + 0x1400 : [0x0222, 0x0216], + 0x1419 : [0x0216], + 0x1420 : [0x0216], + 0x1422 : [0x0216] + }, # Huawei # Disabled as this USB id is used by various USB flash drives @@ -84,10 +89,10 @@ class ANDROID(USBMS): 'GT-I9000', 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID', 'SCH-I500_CARD', 'SPH-D700_CARD', 'MB810', 'GT-P1000', 'DESIRE', 'SGH-T849', '_MB300', 'A70S', 'S_ANDROID', 'A101IT', 'A70H', - 'IDEOS_TABLET', 'MYTOUCH_4G', 'UMS_COMPOSITE', 'SCH-I800_CARD'] + 'IDEOS_TABLET', 'MYTOUCH_4G', 'UMS_COMPOSITE', 'SCH-I800_CARD', '7'] WINDOWS_CARD_A_MEM = ['ANDROID_PHONE', 'GT-I9000_CARD', 'SGH-I897', 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID', 'GT-P1000_CARD', - 'A70S', 'A101IT'] + 'A70S', 'A101IT', '7'] OSX_MAIN_MEM = 'Android Device Main Memory'