LINUX.ORG.RU

Lenin.Blog 0.1

 , ,


5

6

Увидела свет первая версия простого легковесного блога, поддерживающая обмен сообщениями сервер-сервер и сервер-пользователь.

Проект написан на Python 2.7 и представляет собой запускаемое приложение, которое можно использовать даже без выделенного веб-сервера (например, в локальной сети). База данных не требуется.

Поддерживается базовая функциональность блога: сообщения, комментарии, тролли, тэги, карбонки, RSS, отображение картинок.

Блог может меняться трафиком с совместимыми с http://gk11.ru проектами, будь то другой блог, форум, эха или другое представление. Пользователи могут подключаться, загружать и писать сообщения с помощью совместимых оффлайн-клиентов.

Лицензии используемых модулей указаны отдельно, лицензия основного кода — общественное достояние.

Демонстрация блога: http://blog.51t.ru

>>> Подробности

Ответ на: комментарий от kirk_johnson

Первый раз слышу про проблемы с парсингом имейла.

видимо, ты их не парсил руками. Вот тебе кусок старого кода на питоне, который парсит _только_ часть заголовков

# get mail text
try:
    with open(os.path.join(path, mail), 'r') as mail_file:
        attached_mail = email.message_from_file(mail_file)
except (IOError, TypeError):
    logging.error('Could not get data from {}'.format(mail), exc_info=True)
    continue
# to fields
rec_list = attached_mail.get_all('To', [])
bcc_list = attached_mail.get_all('Bcc', [])
cc_list = attached_mail.get_all('Cc', [])
recipients = ', '.join([addr[1] for addr in email.utils.getaddresses(rec_list + bcc_list + cc_list)])
if not recipients:
    # there is no any recipients
    # seems to be bug in the Google API, a mail named as 'Attachment'
    continue
# from fields
sender = ', '.join([addr[1] for addr in email.utils.getaddresses(attached_mail.get_all('From', []))])
# decode subject
subject, subj_encoding = email.Header.decode_header(attached_mail.get('Subject', ''))[0]
if subj_encoding is not None:
    try:
        subject = subject.decode(subj_encoding)
    except:
        # fuck you users which mail agents send invalid encoding
        pass
# date
date, date_encoding = email.Header.decode_header(attached_mail.get('Date', ''))[0]
except:
if date_encoding is not None:
    date = date.decode(date_encoding)
try:
    date = date_parser.parse(date)
except ValueError:
    # some clients send invalid TZ/datetime format, lets assign current date
    date = datetime.datetime.now()

но на бумажке выглядит просто, да

arcanis ★★★ ()
Последнее исправление: arcanis (всего исправлений: 1)
Ответ на: комментарий от Censo

Нехило подросло, я помню ставил там было около 500 пиров

Сильно зависит от того, где нода стоит и как долго. На домашнем компе сейчас 4833, на этом ноуте, с которого пишу, 17895. Видел и по 500 тоже совсем недавно. Просто этот прокси висит долго и с белым IP. Вот, видимо, и собрал столько связей.

Кто там сейчас основные пиры? Китай и РФ? Есть где-нибудь статистика?

Если открыть https://proxy.zeronet.a0z.ru/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D/ и справа вверху серый нолик в кружке потянуть влево мышкой, то откроется панель инструментов зайта и там будет статистика по соединениям. С глобусом, который можно крутить мышкой :)

Только фигня какая-то, на прокси показывается только 123 доступных пира. Видимо, потому что только что перезагружал сервер и убивал все кеши :)

На ноуте у меня 17723 доступных пира. Сейчас попробую скрин отдать не через Твиттер, как привык, а через ZeroMe и прокси :D

...

Хм. Фигня какая-то. На собственных, приватных прокси, картинка показывается. На публичных — нет :-/ Может, ZeroMe не показывает картинки не авторизованным юзерам?

https://proxy.zeronet.a0z.ru/Me.ZeroNetwork.bit/?Post/1BLueGvui1GdbtsjcKqCf4F...

Ну, тогда как обычно, в Твиттер :)

https://twitter.com/balancer73/status/936794817593450496

Основная масса нод — Европа и Восточная Азия, в т.ч., в основном, в Китае. Поменьше — в Штатах и Канаде. Но, вообще, ноды по всему миру, кроме центральной Южной Америки и бОльшей части Африки. Но, в общем, даже в Африке есть немного :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от Censo

Я только запустил, он что всех пиров сразу не знает?

Нет конечно, зачем? :) Достаточно одного, у кого будут нужные тебе данные :D Остальное — так, для удобства работы сети. И число известных источников не равно числу активных и возможных соединений.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Только фигня какая-то, на прокси показывается только 123 доступных пира

Уже 262. Да, значит, восстанавливаются связи после сброса и очистки.

Но на ноуте с 17 тыс. связей глобус красиво смотрится, я раньше тоже видел только с малым числом связей :D

KRoN73 ★★★★★ ()
Последнее исправление: KRoN73 (всего исправлений: 1)
Ответ на: комментарий от KRoN73

Сильно зависит от того, где нода стоит и как долго. На домашнем компе сейчас 4833, на этом ноуте, с которого пишу, 17895. Видел и по 500 тоже совсем недавно. Просто этот прокси висит долго и с белым IP. Вот, видимо, и собрал столько связей.

Я тоже подумал про белый IP, так как я сейчас за НАТом. Ну и видимо только запустил. Сейчас уже больше двухсот.

Основная масса нод — Европа и Восточная Азия, в т.ч., в основном, в Китае. Поменьше — в Штатах и Канаде. Но, вообще, ноды по всему миру, кроме центральной Южной Америки и бОльшей части Африки. Но, в общем, даже в Африке есть немного :)

Вот это интересно, Китай не может забанить по протоколу или сам участвует? ZeroNet использует какую-либо обфускацию?

Censo ()
Ответ на: комментарий от KRoN73

Ну, тогда как обычно, в Твиттер :)

Надёргал скринов с разных ракурсов и положил в блог:

https://proxy.zeronet.a0z.ru/1PxNZqJ3R3aUt171foqtzbhgZZ6JaggaAi/?Post:26:Геог...

В блогах картинки через прокси нормально выводятся :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от Censo

Вот это интересно, Китай не может забанить по протоколу или сам участвует? ZeroNet использует какую-либо обфускацию?

Китай с ZeroNet борется, но вяло. Пока там тупо заблокировали zeronet.io (при чём не заблокировали https://github.com/HelloZeroNet/ZeroNet :) ), но не противодействуют самому протоколу. Насколько просто его заблокировать — не знаю. Соединения наверняка шифрованные (хотя даже в этом не уверен, потому как передаются в ZN данные или открытые, или шифрованные ещё на уровне приложения, например, ZeroMail). Кроме того, ZeroNet может работать через Tor (вот как у меня на этом ноуте — просто чтобы за серым IP не было конфликтов с портами у десктопа), а борьба с Tor в Китае идёт с переменным успехом. Вроде бы, считается, что блокируется, но у многих, как я понимаю, Tor работает :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от bodqhrohro_promo

Да, кроме XWayland - пришлось тупо тырить. Понятно что смотрел на Weston ибо там каноничный подход без сторонних библиотек и на более низком уровне.

Забавно но пока что 90% работает в XWayland ибо следующим этапом просто хочу перекомпилировать с поддержкой Wayland. Для этого Arch в самый раз.

baist ()
Ответ на: комментарий от baist

Нет, не понял. Я говорю, что обосравшись в C, ты создаешь возможность для сложнодетектируемых багов, которые могут быть использованы для выполнения произвольного кода. Ты мне говоришь про ограничение глубины рекурсии и эксцепшонах.

kirk_johnson ★☆ ()
Ответ на: комментарий от iluha16

php вариант резервной ноды уже есть, но нет веб-интерфейса

веб-интерфейс писать пытаюсь... но, несмотря на то, что на php я писал с 2002 по 2011, сейчас, после python, вспоминать это и пытаться что-то сделать - это пытка. как будто после 6 лет езды на мерседесе снова заставили ездить на лошади, несмотря на перелом руки и позвоночника... но нода на php нужна, как резеврный вариант, и поэтому, хоть криво-косо, но она будет сделана

buratino ★★★ ()
Ответ на: комментарий от kirk_johnson

Обосравшись с PHP ты даешь возможность выполнения произвольной SQL-иньекций.

Я живу достаточно давно. И я спорил и троллил за этот промежуток времени сотни раз. Я сразу определяю, когда человек не настроен на конструктивный разговор. Это выглядит как троллинг, или как болезненый спор. В этом случае скорее второе. Это видно по тексту. И в жизни и в сети, сценарий идет одинаково. Тебе что-то пишут, ты реагируешь. Пишешь контраргумент, что мол «не все так просто». Далее человек начинает обращать внимание на дополнительные утверждения. Придераться к словам. Также признаком служит то, что человек категоричен на все 100%. Главное вжалить. Главное не признать даже частичную правоту автора. Ну и самое главное тебя просто не слушают. Потому что когда слушают, то отвечают в стиле «Да, здесь ты конечно верно подметил...», «ты прав.. но», «ага вот это ты ловко завернул, а что насчет ....».

Также признаком служит тот факт что для человека предмет обсуждения не столь важен, сколько важна мнимая победа или доминирование - главное выйти сухим на все 100%, главное что последние слово за мной.

baist ()

Смищно. Петон конечно петон, но и C++ не торт...

Вот вам простой пример: cpp-код примеров Vulkan ЯСНО и ПОНЯТНО собирается из консоли, а вот KDevelop ты чёрта-сдва настроишь на юз вулканной SDK, да и вообще любых сторонноих хидеров не только в линуксе, но и в макоси и винде.

Этож какими марсианами надо быть, чтоб SDK не помогали, а наоборот мешали?!

anonymous ()
Ответ на: комментарий от anonymous

, а вот KDevelop ты чёрта-сдва настроишь на юз вулканной SDK,

А, вспомнил... мне друзья 2 года назад гоорили «не тупи и поставь NetBeans!», ПОЛУЧИЛОСЬ!!!

Сказка о человеке, который СМОГ.

anonymous ()
Ответ на: комментарий от bodqhrohro_promo

Туалетная бумага — ретроградство

Сколько сломалось. Сейчас не XX век, подобные вещи легко контролируются

Как показывает практика, даже более простые вообще не контроллируются. Иначе бы мы не видели дефицита сливочного масла в Норвегии, дефицита всего в Венесуэле и «подставь любого социалиста сюда».

Какие такие деньги?

А на какое бабло ты собрался свои органы обеспечивать? Алло, у государства нет своих денег =)

И все настолько убогие, что я аж собираюсь писать свой.

Никак не говорит в пользу того, что кто-то кого-то обязывает.

Проблемы начинаются, когда узкий рынок не потянет R&D сам.

Ну пока как-то тянет. Тем более R&D не везде нужен. Ты же не рыдаешь из-за того, что в Теслу не встраивают модуль работы в условиях пониженной гравитации.

Человек отличается от прочих животных тем, что не подстраивается под суровую действительность

Я с этим не спорю. Только ты почему-то подменяешь «человек» на «я». Напомню, что тезис о деградации ты не доказал, способ определения потребностей кроме как спросом ты не показал. Пока что у тебя выходит критерий «нравится/не нравится».

Ну так десктопный линукс загнивает же

Настолько загнивает, что я в 2003 и подумать не мог, что не буду париться насчет видеодрайверов, игр и всего остального. Доказать обратное очень легко - ставишь Мандриву 20-летней давности на той же давности железе, снимаешь типовые юзкейсы. О великолепном десктопном линуксе начала нулевых не забудь рассказать =)

Вот типа в мастодонтах типа IBM и Microsoft бюрократии нет. Но вертятся же как-то.

Живы, именно потому что вертятся. У IBM прорва современных разработок, у Майков что-то есть, но они и рынки теряют один за другим. Кто не вертится - тот умирает, Нокия - не вертелась. Будешь спорить? =)

Clayman ()
Ответ на: комментарий от atsym

В OperaMini не завелось...

Там всё приложение на JS. В ZeroNet бэкенд на Питоне, обеспечивает передачу инфо по сети и API. И фронтенд на JS в браузере, обеспечивает работу клиента с этим API.

KRoN73 ★★★★★ ()
Ответ на: комментарий от baist

Обосравшись с PHP ты даешь возможность выполнения произвольной SQL-иньекций.

Как и в любом другом языке :) Я, вот, помню, чистил кучу SQL-инъекций в Java одного стороннего проекта...

KRoN73 ★★★★★ ()

Требую убрать из названия свободного проекта псевдоним кровавого жидотирана, ритуально убившего последнего законного правителя этой страны!

Sociopsih ★★ ()
Ответ на: комментарий от Sociopsih

Ты меня разигнорил? Какой сюрприз. )

а ты кто? у меня вроде никого в игноре нет, сейчас пойду уточню. Не, никого.

В моём рейтинге исторически значимых блогеров Элеонора Лорд Прей занимает первое место, Владимир Ленин - второе. Кто на третьем, ещё не решил.

buratino ★★★ ()
Ответ на: комментарий от buratino

а ты кто? у меня вроде никого в игноре нет, сейчас пойду уточню. Не, никого.

Бывает. Значит я ошибся.

Элеонора Лорд Прей

Занятный персонаж, спасибо. Информации на русском по ней крайне мало, а на буржуйском я вообще ничего толком не нашел. Понял только, что во Владивостоке она пребывала с 1894 по 1930, а прожила до 1954. Соответственно, полагаю, счастливо уехала на родину без последствий, что уже неплохо.

Sociopsih ★★ ()
Ответ на: комментарий от Sociopsih

Она уехала в Китай (хотя уезжать катеорически не хотела, но родственники были в Китае, муж умер, а магазин, в котором она работала, закрылся), и там потом попала в японский концлагерь. Впоследствии была интернирована в США. Хотя, по каким-то источникам, умерла в японском концлагере..

про неё даже федеральный канал когда-то рассказывал:

https://www.1tv.ru/news/2017-03-13/321400-na_konkurse_evrovidenie_rossiyu_pre...

вот тут немало написано: https://dv.land/history/pervyi-bloger-dalnego-vostoka

buratino ★★★ ()
Ответ на: комментарий от Clayman

даже более простые вообще не контроллируются

Вопрос времени. Супермаркеты, например, заинтересованы, чтобы товары оттуда не тыбзили и снабжают товары радиометками. Корпоративный социализм — он такой.

А на какое бабло ты собрался свои органы обеспечивать? Алло, у государства нет своих денег =)

Бабло условное. Вне рамок общественных условностей мерять нужно скорее в трудочасах. Даже не человекочасах, эта метрика устарела с приходом автоматизации.

что кто-то кого-то обязывает

Внешние факторы вынуждают меня использовать какой-то браузер. Даже чтобы написать браузер, понадобится браузер. Догадываешься, к чему я клоню?

Ну пока как-то тянет

Если тянет, откуда столько нытья о чём бы то ни было?

в Теслу не встраивают модуль работы в условиях пониженной гравитации

Сначала места с пониженной гравитацией освоить надо. А то попрыгали полвека назад по Луне (или по павильйону) — и на этом всё закончилось. Но тут ныть нечего, пожелаем успехов Маску. Тоже хороший пример для подражания, мечтал о космосе — делает.

тезис о деградации ты не доказал

Он опирается на тезис о происхождении человека от протопримата, который сам по себе 100%-но не доказан, и доказывать его я не собираюсь. А вот деградация уже исходя из её определения определяется различием характеристик человека и других приматов и прочих млекопитающих.

способ определения потребностей кроме как спросом ты не показал

То есть про Хайв ты даже читать не стал?

я в 2003 и подумать не мог, что не буду париться насчет видеодрайверов

Просто на десктопах тогда был зоопарк видеокарт, сейчас он сузился до двух с половиной брендов. Зато на мобильных девайсах зоопарк, там до сих пор вкатить GNU/Linux с подхватом всего железа — задача очень нетривиальная. Альзо, потребность в навороченных драйверах видеокарты тогда была сильно меньше, потому что софтварный рендеринг был ещё весьма актуален, сиди себе с VESA. Это с середины 00-х пошли свистелки, аппаратное ускорение графики повсюду, аппаратное кодекодирование мультимедиа — и без работающего видеоускорителя стало грустно.

именно потому что вертятся

Вертятся в отдельных «научных» отделах R&D. Как оттуда что-то просачивается в итоге в продукты компании и просачивается ли вообще — как раз бюрократией и определяется. И пока что похоже, что и там, и там R&D живёт в целом отдельной от компании жизнью и приносит пользу кому угодно, только не самой компании.

bodqhrohro_promo ()
Ответ на: комментарий от KRoN73

JS JS'у рознь. Главная проблема JS в том, что от одной ошибки падает целый скрипт (либо не проблема, ибо игнорирование ошибок запросто может натворить UB и ещё большей беды). Можно писать осторожно, не применяя свежайшие фичи языка либо используя для них полифиллы/транспилляция и отключая фрагменты кода при отсутствии в браузере нужных для этого участка API, а можно тупо хреначить код, забив на всю непопсу.

bodqhrohro_promo ()