IGN:More serbian recipes

This commit is contained in:
Kovid Goyal 2008-11-21 18:17:41 -08:00
parent 59b0ac6762
commit bcd4a9d98c
7 changed files with 350 additions and 71 deletions

View File

@ -14,6 +14,7 @@ recipe_modules = [
'politika', 'moscow_times', 'latimes', 'japan_times', 'san_fran_chronicle', 'politika', 'moscow_times', 'latimes', 'japan_times', 'san_fran_chronicle',
'demorgen_be', 'de_standaard', 'ap', 'barrons', 'chr_mon', 'cnn', 'faznet', 'demorgen_be', 'de_standaard', 'ap', 'barrons', 'chr_mon', 'cnn', 'faznet',
'jpost', 'jutarnji', 'nasa', 'reuters', 'spiegelde', 'wash_post', 'zeitde', 'jpost', 'jutarnji', 'nasa', 'reuters', 'spiegelde', 'wash_post', 'zeitde',
'blic', 'novosti', 'danas', 'vreme',
] ]
import re, imp, inspect, time, os import re, imp, inspect, time, os

View File

@ -5,7 +5,7 @@ __copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
''' '''
b92.net b92.net
''' '''
import locale
from calibre.web.feeds.news import BasicNewsRecipe from calibre.web.feeds.news import BasicNewsRecipe
class B92(BasicNewsRecipe): class B92(BasicNewsRecipe):
@ -16,6 +16,28 @@ class B92(BasicNewsRecipe):
max_articles_per_feed = 100 max_articles_per_feed = 100
no_stylesheets = True no_stylesheets = True
use_embedded_content = False use_embedded_content = False
#Locale setting to get appropriate date/month values in Serbian if possible
try:
#Windows seting for locale
locale.setlocale(locale.LC_TIME,'Serbian (Latin)')
except locale.Error:
#Linux setting for locale -- choose one appropriate for your distribution
try:
locale.setlocale(locale.LC_TIME,'sr_YU')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_CS@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_RS')
except locale.Error:
locale.setlocale(locale.LC_TIME,'C')
remove_tags_after = dict(name='div', attrs={'class':'gas'}) remove_tags_after = dict(name='div', attrs={'class':'gas'})
remove_tags = [ remove_tags = [

View File

@ -0,0 +1,49 @@
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
'''
blic.rs
'''
import locale
from calibre.web.feeds.news import BasicNewsRecipe
class Blic(BasicNewsRecipe):
title = u'Blic'
__author__ = 'Darko Miletic'
description = 'Vesti'
oldest_article = 7
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
timefmt = ' [%A, %d %B, %Y]'
#Locale setting to get appropriate date/month values in Serbian if possible
try:
#Windows seting for locale
locale.setlocale(locale.LC_TIME,'Serbian (Latin)')
except locale.Error:
#Linux setting for locale -- choose one appropriate for your distribution
try:
locale.setlocale(locale.LC_TIME,'sr_YU')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_CS@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_RS')
except locale.Error:
locale.setlocale(locale.LC_TIME,'C')
keep_only_tags = [ dict(name='div', attrs={'class':'single_news'}) ]
feeds = [ (u'Vesti', u'http://www.blic.rs/rssall.php')]
def print_version(self, url):
start_url, question, rest_url = url.partition('?')
return u'http://www.blic.rs/_print.php?' + rest_url

View File

@ -0,0 +1,57 @@
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
'''
danas.rs
'''
import locale
from calibre.web.feeds.news import BasicNewsRecipe
class Danas(BasicNewsRecipe):
title = u'Danas'
__author__ = 'Darko Miletic'
description = 'Vesti'
oldest_article = 7
max_articles_per_feed = 100
no_stylesheets = False
use_embedded_content = False
timefmt = ' [%A, %d %B, %Y]'
#Locale setting to get appropriate date/month values in Serbian if possible
try:
#Windows seting for locale
locale.setlocale(locale.LC_TIME,'Serbian (Latin)')
except locale.Error:
#Linux setting for locale -- choose one appropriate for your distribution
try:
locale.setlocale(locale.LC_TIME,'sr_YU')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_CS@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_RS')
except locale.Error:
locale.setlocale(locale.LC_TIME,'C')
keep_only_tags = [ dict(name='div', attrs={'id':'left'}) ]
remove_tags_after = dict(name='div', attrs={'id':'comments'})
remove_tags = [
dict(name='div', attrs={'class':'width_1_4'})
,dict(name='div', attrs={'class':'metaClanka'})
,dict(name='div', attrs={'id':'comments'})
,dict(name='div', attrs={'class':'baner'})
]
feeds = [ (u'Vesti', u'http://www.danas.rs/rss/rss.asp')]
# def print_version(self, url):
# return url + '&action=print'

View File

@ -0,0 +1,51 @@
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
'''
novosti.rs
'''
import locale
from calibre.web.feeds.news import BasicNewsRecipe
class Novosti(BasicNewsRecipe):
title = u'Vecernje Novosti'
__author__ = u'Darko Miletic'
description = u'Vesti'
oldest_article = 7
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
timefmt = ' [%A, %d %B, %Y]'
#Locale setting to get appropriate date/month values in Serbian if possible
try:
#Windows seting for locale
locale.setlocale(locale.LC_TIME,'Serbian (Latin)')
except locale.Error:
#Linux setting for locale -- choose one appropriate for your distribution
try:
locale.setlocale(locale.LC_TIME,'sr_YU')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_CS@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_RS')
except locale.Error:
locale.setlocale(locale.LC_TIME,'C')
keep_only_tags = [ dict(name='div', attrs={'class':'jednaVest'}) ]
remove_tags_after = dict(name='div', attrs={'class':'info_bottom'})
remove_tags = [
dict(name='div', attrs={'class':'info'})
,dict(name='div', attrs={'class':'info_bottom'})
]
feeds = [ (u'Vesti', u'http://www.novosti.rs/php/vesti/rss.php')]

View File

@ -5,7 +5,7 @@ __copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
''' '''
politika.rs politika.rs
''' '''
import locale
from calibre.web.feeds.news import BasicNewsRecipe from calibre.web.feeds.news import BasicNewsRecipe
class Politika(BasicNewsRecipe): class Politika(BasicNewsRecipe):
@ -17,6 +17,29 @@ class Politika(BasicNewsRecipe):
no_stylesheets = True no_stylesheets = True
extra_css = '.content_center_border {text-align: left;}' extra_css = '.content_center_border {text-align: left;}'
use_embedded_content = False use_embedded_content = False
timefmt = ' [%A, %d %B, %Y]'
#Locale setting to get appropriate date/month values in Serbian if possible
try:
#Windows seting for locale
locale.setlocale(locale.LC_TIME,'Serbian (Latin)')
except locale.Error:
#Linux setting for locale -- choose one appropriate for your distribution
try:
locale.setlocale(locale.LC_TIME,'sr_YU')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_CS@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_RS')
except locale.Error:
locale.setlocale(locale.LC_TIME,'C')
remove_tags_before = dict(name='div', attrs={'class':'content_center_border'}) remove_tags_before = dict(name='div', attrs={'class':'content_center_border'})
remove_tags_after = dict(name='div', attrs={'class':'datum_item_details'}) remove_tags_after = dict(name='div', attrs={'class':'datum_item_details'})

View File

@ -0,0 +1,76 @@
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
'''
vreme.com
'''
import string
import locale
from calibre import strftime
from calibre.web.feeds.recipes import BasicNewsRecipe
class Vreme(BasicNewsRecipe):
title = 'Vreme'
__author__ = 'Darko Miletic'
description = 'Politicki Nedeljnik Srbije'
timefmt = ' [%A, %d %B, %Y]'
no_stylesheets = True
simultaneous_downloads = 1
delay = 1
needs_subscription = True
INDEX = 'http://www.vreme.com'
LOGIN = 'http://www.vreme.com/account/index.php'
#Locale setting to get appropriate date/month values in Serbian if possible
try:
#Windows seting for locale
locale.setlocale(locale.LC_TIME,'Serbian (Latin)')
except locale.Error:
#Linux setting for locale -- choose one appropriate for your distribution
try:
locale.setlocale(locale.LC_TIME,'sr_YU')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_CS@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr@Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_Latn')
except locale.Error:
try:
locale.setlocale(locale.LC_TIME,'sr_RS')
except locale.Error:
locale.setlocale(locale.LC_TIME,'C')
def get_browser(self):
br = BasicNewsRecipe.get_browser()
if self.username is not None and self.password is not None:
br.open(self.LOGIN)
br.select_form(name='f')
br['username'] = self.username
br['password'] = self.password
br.submit()
return br
def parse_index(self):
articles = []
soup = self.index_to_soup(self.INDEX)
for item in soup.findAll('span', attrs={'class':'toc2'}):
feed_link = item.find('a')
if feed_link and feed_link.has_key('href'):
url = self.INDEX+feed_link['href']+'&print=yes'
title = self.tag_to_string(feed_link)
date = strftime('%A, %d %B, %Y')
description = ''
articles.append({
'title':title,
'date':date,
'url':url,
'description':description
})
return [(soup.head.title.string, articles)]