subject: темы сайта
06.08.2014 14:33
51t (lenina,1)
а нам, девчи, надо, наверное, всё таки двигаться в агрегирования, собирая rss-ленты и почтовые рассылки. собирать большую-большую базу, с отдельным веб-интерфейсом (хотя, конечно, всё будет доступно по подписке с одного адреса), это будет отдельный от офлайнизатора сервис, предоставляющий именно актуальную информацию.
Сейчас я (пока из веб интерфейса), скрою некоторые эхи (так они будут доступны, если знаешь название)
Андрей, у тебя где-то был сборщик rss - покажи ещё раз, где?
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 14:41
51t (lenina,1) => KglW7QqwkW4A0kLf8l1t
и с новостями надо что-то делать. фигачить их большой темой - не подходит, загораживают вечно...
кто-нибудь умеет делать бегущую строку или что-то типа того?
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 17:54
spline (station13, 1) => KglW7QqwkW4A0kLf8l1t
>Андрей, у тебя где-то был сборщик rss - покажи ещё раз, где?
https://github.com/spline1986/rss2ii
Он кривоватый. Но в своё дурацкое оправдание могу сказать что я не знаю python =)
Результат его работы можно посмотреть, например, тут ii://spline.lor.rss.14 или ii://ifprint.14. У меня в читалке можно посмотреть http://spline.rooker.ru/ii/
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 18:05
vit01 (mira, 1) => IDMBavTnfKQqQnAAOC0z
> Результат его работы можно посмотреть, например, тут spline.lor.rss.14 или ifprint.14.
Ещё ii://lenta.dark.14 , там же тоже твой скрипт работает. Правда, я его чуть-чуть подправил, для того чтобы он ссылку добавлял.
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 18:28
spline (station13, 1) => tcAwiMr9i0xjLoy95iWB
>Ещё ii://lenta.dark.14 , там же тоже твой скрипт работает.
Не знал =)
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 18:44
51t (lenina,1) => IDMBavTnfKQqQnAAOC0z
да, страшноватенько :)
по-моему, всё таки будет проще добавить rss к моему фетчеру :) [у меня там тоже на фидпарсер заточено], а преобразовывать с помощью того же html2text. но твой код тоже разберу, чтобы понять, что там и как...
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 19:09
spline (station13, 1) => 6smRJACHZXgPpaPaBIqk
>да, страшноватенько :)
Ну я хорошо знаю только паскаль. А пайтон только гуглением знаю. Надо бы книжку умную почитать какую, но у меня в очереди sicp и добить уже pcl. А там уже и не знаю так ли мне пайтон нужен будет =)
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 19:28
51t (lenina,1) => R3skE72ctLapzjVsnWKX
я про метод замены...
не знаю, ни книжек не читал про python, да и поисковики не очень жалую... просто когда-то начал писать, даже не зная, как правильно hello_world, и он в процессе сам изучился.
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 19:47
spline (station13, 1) => n3NNdyKcXAZrgFJADUzD
>я про метод замены...
Это не просто страшноватенько. Это отвратительно =) Но пока просто лень до ума довести это безобразие.
>не знаю, ни книжек не читал про python, да и поисковики не очень жалую... просто когда-то начал писать, даже не зная, как правильно hello_world, и он в процессе сам изучился.
Просто вопрос потраченного времени. У меня на пайтоне был недописанный движок для раголиков на libtcod и вот этот ретранслятор. На лиспе уже больше проектов =)
--------------------------------------------------------------------------------
subject: Re: темы сайта
06.08.2014 19:53
51t (lenina,1) => R3skE72ctLapzjVsnWKX
вот, насобирал. требуется html2text.py и feedparser.py
====
# -*- coding: utf-8 -*-
import urllib, os, base64, hashlib, time, html2text, feedparser as feed
RSSURL='http://www.linux.org.ru/news/linux-general/10737394?output=rss'
ECHO='re.14'
def hsh(s):
return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','A').replace('_','z')[:20]
def ru(fn):
try: return open(fn).read().decode('utf-8')
except: return ''
def gts():
return int(time.time())
def newmsg(ea,msgfrom,addr,msgto,subj,txt):
s = 'ii/ok\n%s\n%s\n%s\n%s\n%s\n%s\n\n%s' % (ea,gts(),msgfrom,addr,msgto,subj,txt)
h = hsh(s)
if len(s) < 65536:
open('msg/%s' % h,'wb').write(s)
open('echo/%s' % ea,'ab').write(h + '\n')
return h
def getf(l):
print 'fetch %s' % l
from StringIO import StringIO
import gzip
request = urllib2.Request(l)
request.add_header('Accept-encoding', 'gzip')
response = urllib2.urlopen(request)
if response.info().get('Content-Encoding') == 'gzip':
f = gzip.GzipFile(fileobj=StringIO( response.read()))
else:
f = response
return f.read()
def parse_news_msgs(rurl,ea):
o = feed.parse(rurl)
prev = ru('rssdb/%s' % ea).splitlines()
for q in reversed(o.entries):
if not q.guid in prev:
h = html2text.HTML2Text()
h.body_width=0
h.ignore_links = False
h.ignore_images = True
txt = h.handle(q.description).encode('utf-8')
newmsg(ea,q.author.encode('utf-8') or 'rss','rssarea,1','All',q.title.encode('utf-8'),txt)
open('rssdb/%s' % ea,'a').write('%s\n' % q.guid)
parse_news_msgs(RSSURL,ECHO)
====
ещё для работы требуются пустые каталоги rssdb, msg и echo
--------------------------------------------------------------------------------