В общем столкнулся я с такой проблемой, захотел что бы в коньках выводились цитаты с баша, нашел скрипт и получил фигвам :)
дистр debian lenny 5.0.7 amd64
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Первый параметр у скрипта - ширина поля вывода в символах
# Если параметр опущен, то ширина равно 50 символов
import pycurl, cStringIO, re, sys, textwrap
# Функция перевода html-кодов и тегов в нормальное представление
def unescape(s):
s = s.replace("<br>", "\n")
s = s.replace("<br />", "\n")
s = s.replace(""", "\"")
s = s.replace("<", "<")
s = s.replace(">", ">")
return s
# Если дополнительные параметры не переданы,то
# Ставим ширину поля вывода равной 50 символов
if len(sys.argv) < 2:
text_width = 50
else:
# Иначе равной первому параметру
text_width = int(sys.argv[1])
# cStringIO понадобится для CURL
data = cStringIO.StringIO()
# Инициализация CURL
curl = pycurl.Curl()
# Передаем адрес сайта - страница с рандомными цитатами
curl.setopt(pycurl.URL, 'http://bash.org.ru/random')
# Указываем функцию, которой будет передаваться содержимое страницы
curl.setopt(pycurl.WRITEFUNCTION, data.write)
# Выполняем запрос
curl.perform()
curl.close()
# По регулярному выражению ищем все цитаты на странице
# В дальнейшем будет браться только одна, но решил оставить так
res = re.findall("<div>(.*)</div>",data.getvalue())
data.close()
# Придаем тексту читабельный вид
quote= unescape(res[0])
# Переводим в кодировку utf8
quote = quote.decode('cp1251')
quote = quote.encode('utf8')
# Разбиваем текст на список строк. Дело в том, что textwrap.fill
# Игнорирует существующие переносы строк, он соединяет весь текст
# А затем заново делает переносы
quotes = quote.split("\n")
# Создаем объект для нашего "враппера"
wrapper = textwrap.TextWrapper(width=text_width, # Ширина поля вывода
initial_indent="", # Символы красной строки
subsequent_indent="") # Символы, которые будут
# вставляться после переноса
# Наконец-то перебираем строки и выводим их
for quote in quotes:
print wrapper.fill(quote)
а вот фурычить оно не хочет..
[console]
File "/root/.conky/bash.org.py", line 10
s = s.replace("<br>", "\n")
^
IndentationError: expected an indented block
[/console]
вывести все это в коньки не сложно, экспериментируйте.
${color1}Bash.org.ru:
${color2}${execi 300 /home/test/bash.org.py 50}
Ну и ессно прошу помощи :)