>>62793289
бамп нанообщением
bump
Это же реклама, мочератор почему не банишь?
А других так сразу.
>>62795458
Потому что это наноборда. Ты её видел? Ты можешь на неё зайти?
Проект обречен гнить в аду
>>62793289
Я не совсем понял, где собственно будут находиться пикчи, в которых будут зашифрованы треды? И как будет производиться поиск тредов?
>>62795564
проект живёт и процветает. вот нанокартинка со всеми постами из аноновского битсинка. без картинок.
>>62795885
Для тех кто не понял, что происходит:
У анонов есть общая папка (файлопомойка) которая синхронизируется пир-ту-пир. Это не какой-нибудь хитромудрый сервер. Туда просто можно кидать файлы.
Наноборда там выглядит как обычная (примитивная) веб-борда - веб-страницы с тредами и постами, кнопками ответа. По нажатию на кнопку ответа появляется поле для текста. Но вместо кнопки отправить - кнопка "Получить нанопост". Предлагает сохранить файл, он сохраняется в файлопомойку и через время пост появляется у всех в нужном треде.
Сердце наноборды - нанопосты. Это текстовые файлы очень простого формата. Ими очень легко обмениваться. Хоть через крипто-пнгшки, хоть через файлопомойки, хоть тупо через почту или даже в открытую здесь прямо в обычных постах в виде текста.
Достаточно, чтобы файлы нанопостов лежали в определённой папке и нанософт построит из них веб-странички-треды.
Пилится клиент, который позволит набигать на обычноборды крипто-пнгшками с кучей нанопостов внутри.
>>62795552
ВОН ВАНЬКА ТО ЕРОХИН НА РАБОТУ СТРОИЛСЯ, МАШИНУ КУПИЛ, ПО ЗАГРАНИЦАМ ЕЗДИТ
@
А ЭТОТ. НЕТ ЧТОБЫ ДЕВУШКУ СЕБЕ НАЙТИ, ДЕНЬГИ НАЧАТЬ ЗАРАБАТЫВАТЬ
@
В ИНТРНЕТАХ СВОИХ СИДИТ.НАНОБОРДЫ ПРИДУМЫВАЕТ.
ТЕПЕРЬ ЭТО БУГУРТ ТРЭД
Открываю новый тред
00000000000000000000000000000000Обмен ЦОПЕ
Собственно то, для чего это все задумывалось :-)
>>62796183
>наноборда это борда без какого-либо сервера
>у анонов есть общая папка (файлопомойка) которая синхронизируется пир-ту-пир
Уебывай отсюда нахуй
>>62795877
Разрбросаны в тематиках сосача и крупных досках мелкоборд. Каждый сам будет следить за обновлениями в мире имиджборд и обновлять настройки. Заранее можно просто договориться, что в слишком быстрые доски не постить и в слишком забитые тоже не лезть, ведь не все их найдут. Парситься будут все картинки от текущего момента до настраиваемой глубины.
>>62796762
Ну видишь ли это просто онаны взяли потестить наноборду туда на время. И она им нужна вобщем-то, им же хочется общения, а через блокнотик общаться нихуя не удобно - чужие посты трутся если одновременно редактируешь. Они задумывались о похожей борде ещё до того, как первый функционал наноборды появился. Она обязательно выберется оттуда, она в частности уже в ОП-пикче. Полистай архивач и ссылку на бусчан в треде в архиваче. Планы далекоидущие. Наноборда будет повсюду. От неё будет не избавиться.
>>62795877
если ты про поиск нанотредов, то не обязательно иметь все сообщения из треда и даже не обязательно иметь оп-пост. что соберётся то и покажется. организованно, без повторений. всё это уже работает.
>>62793289
Ну и нахуй оно надо?
>>62796959
> Планы далекоидущие
Ну это как водится. Отсыпь потом пару лямов
>>62793289
Jabberx, маму твою ебал.
чо за говно? нахуй нужно если есть сосач?
оп
нахуй ты как уебан описал это всё?
какое блять нано?
это П2П борда штоле?
так всё уже до тебя изобретено
Это такой новый дримпрофи?
>>62797597
нет, это ни разу не п2п борда
это просто кучка файлов. которые повсюду, как вирус. в этих файлах - нанопосты. на всех серверах. не только на компьютерах. но и на обычных бордах. это как закладки барыг. не требуется п2п, прямое соединение, запущенный клиент... не страшно и если одна из хост-борд упадёт навсегда. можно найти десятки вариантов распространять нанопосты вплоть до таких экзотических которые предусматривают отсутствие интернета на всей земле вообще (например запись архивов с нанопостами на СД и разбрасывание их по городу. медленно но работает). ни одна из п2п хуёвин не позволит провернуть такое.
твой нанотред и нанопосты которые тебе дороги никто не удалит. никто. когда мощь распространения поднимется тебе достаточно будет лишь как и всем другим распространять. распространять заразительные нанопосты. ты распространяешь кого-то, тебя распространяют. и это невозможно остановить.
>>62797909
что такое дримпрофи?
>>62798044
Это как вишмастер, только дримпрофи.
Один вопрос. Цп планируется, или уже есть?
>>62798021
Ты как все это дерьмо синхронизировать будешь?
>>62798021
эта хуйня полное говно, всё всё
говноедство какое-то
чем это лучше той же борды во фринете или и2п?
в чём смысл?
только давай без нанобреда, а чётко и по хардкору поясни мне
>>62798295
Ты часть наноборды. Если тобой планируется то сам понимаешь. Но могут найтись те, кому это придётся не по нраву и твои посты они возможно будут фильтровать если в клиенте запилят такую возможность (это тривиально, а если и не запилят то можно удалять твои посты ручками).
>>62798509
Читай внимательней.
>>62798706
Нахуй послан. Завтра посмотрю.
>>62798706
Нахуй пошел со своим нанодерьмом, читать тебе блять. Или поясняй по хардкору или в вк сосачне предложи ананаимасами стать
>>62798606
>чем это лучше той же борды во фринете или и2п?
лучше тем, что:
>не требуется п2п, прямое соединение, запущенный клиент... не страшно и если одна из хост-борд упадёт навсегда. можно найти десятки вариантов распространять нанопосты вплоть до таких экзотических которые предусматривают отсутствие интернета на всей земле вообще (например запись архивов с нанопостами на СД и разбрасывание их по городу. медленно но работает). ни одна из п2п хуёвин не позволит провернуть такое.
Это не отдельная сеть это даже не сеть. Это встраивание, внедрение. НАЧАЛО
>>62798781
Что тебе пояснять уёба поясни сначала что твой больной мозг имеет в виду под синхронизацией?
Это что то вроде фингербокса, да?
>>62798509
Коротко: синхронизация здесь не требуется. Вообще.
>>62798782
ты какую-то хуету несёшь?
зачем нужна борда без интернета?
если мне нужно схоронить тред - я беру и схороняю
ты себе придумал какое-то гениальное говно и пришёл сюда
и
>не требуется п2п, прямое соединение, запущенный клиент
- это не аргумент
>>62798833
Ноуп. Это та самая мегаламповая труъ-свободная борда которую давно все ждали. Плюс её в том, что неубиваемая, хаотичная и дерзкая, нитакаякакфсе. Ты постишь картинку на сосаче. Со стороны это выглядит как будто ты постишь картинку на сосаче. Но ты можешь даже и не знать, что в ней - целый нанотред.
Можете PNG Обрабатывать прямо в браузере через HTML5 Canvas есть доступ прямо к пикселям, сделайте в виде юзерскрипта.
>>62793289
АХТЫЖСУКА! Запилили таки?
мимохуй из гд
>>62798998
жаберикса знаешь?
>>62798998
Процесс запиливания пошел. В какой-то мере всё что нужно для наполнения глобальной наноборды нанопостами уже готово. Осталось только запилить автоматизированный клиент, чтобы уменьшить долю ручной работы.
Совсем недавно сидел в первом может, и судьбоносном, лол треде. Думал, ОП — фантазёр, а вот оно как! А не вишмастер 2.0 ли это?
Хочу потестить ибо идея нравится но примерно нихуя не понимаю. Гайд бы хоть скромненький запилили.
>>62799032
жабер икс
лично нет, но помню его
>>62799124
Нет, есть же исходники, ну и джабберикс - известная личность, его проекты всегда охуительны и ебануты.
эта хуйня .net framework требует
>>62799279
какая ось стоит?
>>62799332
win7 home.
"для запуска этого приложения необходимо установить одну из следующих версий .NET Framework: v4.0.30319
>>62799451
>>62799504
Скачай, хуйню весит же.
А наноцопэ там есть?
>>62799558
А то. Есть порно с яйцеклеткой, могу скопировать, вот: .
Где находится .SyncIgnore?
сука из-за тебя в интернете картинки запретят, ведь в каждой будет по треду :)
Что-то ссыкотно даже инструкцию в txt открывать ввиду близости батника лол
>>62799726
В папке которая синкается. Это скрытый файл так что поройся в настройках отображения папок. Если это 7я винда - ты его не увидишь, надо открывать в тоталкоммандере. Происки спермоблядские. Ведь в линуксе принято с точкой файлы прятать. Вот они и решили похерить бля ладно не буду.
>>62799743
И не говори ;)
>>62800005
Где?
>>62800339
Configuration - Options - Display - Show hidden files
>>62800339
И не в этой папке а в корневой синка
>>62798985
поддвачну.
>>62793289
Ставь софт, качай пикчи, сохраняй пикчи, загружай пикчи, жри говно. В пизду такое говно.
>>62800716
Загрузка пикчей планируется автоматической.
>>62793289
Как посты сортируются по тайм меткам? И сортируются ли вообще? А что если мне ответили в тред и выложили свой пост на куйвам.орг, а он у меня не в парсере? Я проябу пост? А как я узнаю куда он выложит пост? А как он узнает куда я выложил пост?
>>62798985
А ведь таки и правда. Можно сделать надстройку для браузера и в любой момент граббить картинки с постами со страницы. И оттуда же посты писать.
>>62800762
А с загрузкой пикчей планируретса загрузка эщо чевото?
>>62800762
Решил протестировать. Ошибка, нужен .НЕТФреймворк не ниже 4.8.кококо, нахуй мне это мозгоебство.
>>62801021
такого нет. нужен 4.0 >>62799504
харош сидеть на икспихе или семёрке без сервиспаков
>>62801098
После четверки перестал читать, нажал "Ок".
7, мне норм, все идет, что мне нужно. Ты бы еще этот клиент на питоне написал каком, чтоб я еще какое говно ставил на свой ноут.
>>62800963
Никак, однажды ваши посты просто встретятся и появятся в одном треде. Нужно договориться какие борды и разделы использовать в качестве хостов и тогда таких потеряшек быть не должно. Ну и даже если ты и он сидите с разными списками борд - есть её другие аноны которые будут перепощивать вот так ваши посты и встретятся.
По поводу тайм меток - не стоит доверять меткам так как подделать их - плёвое дело. Тем не мене в нанохтмл генерируемые файлы имеют имена УТЦ-времени, то есть сортируются у всех глобально одинаково если кто-то не будет менять время. Если кто-то и поменяет, то пост может просто съехать оказаться выше или ниже чем надо. Но главное что между постами есть связь то есть какой-то пост отвечает на какой-то пост. Если эта связь есть то логика тредов нарушаться особо не должна.
>>62801276
Ну в принципе jabberx мог бы и на C++ написать.
Приходи и рекламируй, когда все будет уже реализовано, а сейчас я не понимаю, зачем ты запилил ещё один тред.
>>62801356
Чтобы потом хуй кто разобрал исходник?
Алсо можно поднатужиться и перебилдить под 2.0, который есть даже на сраном ХР без сервиспаков. 4.0 это в большинстве случаев излишество.
>>62793289
скрыл хуйню
>>62801443
На готовенькое хочешь сразу? Пошел нахуй, пидор. Уже дохуя чего реализовано. И если не поднимать эту тему, желающих реализовать и не найдётся. Уже вот чел клиент пилит на питоне.
>>62801458
Исходник ест на гитхабе + он его положил и в автокомпил.
То есть, для каждого своего поста нужно запостить пнг-шку на борду?
>>62801021
Ох, лол.
Вердикт: нинужен!
Ибо дотнет на линуксы не завезли.И не только из-за этого.
>>62801892
Юзай mono идиот
Ты предлагаешь хранить на винче целую борду педофилов и наркоманов?
>>62793289
>>62801458
Ща без проблем закомпилил в 3.0
>>62793289
>>62801458
И в 2.0 тоже захуячил
Борда где ответа ждать 10 минут?
>>62801645
Нет. Ты можешь написать даже несколько постов. И в картинку войдут они и чужие посты тоже. Для лучшего распространения.
>>62801892
Нинужен был ты живой в роддоме. Под линукс эту хуйню можно спокойно сбилдить с помощью моно.
>>62802295
Ну фактически для работы борды потребуется распространять пнг шки
>>62802287
Если будет большая активность (много народу) то и ответы будут чаще.
>>62801916
I do.
в тентакль залить картинки планируется?
>>62802397
Ну как бы да, как один из основных вариантов.
>>62802401
В теории можно постить даже не на борду да? Чтоб капчу не вводить и автоматизировать пост.
>>62802486
Думается мне что тентакля жмёт картиночки.
>>62802576
Да, пнг вроде бы конвертирует в жпг.
Но можно выкладывать картинку как документ - тогда она не пожмётся.
>>62802576
Можно постить документы.
В группу.
На стеночке.
Анонимное общение.
Представим помойку с овердохуя картинок. Как программа будет парсить только новые картинки с новыми постами? Тупо скачивать и проверять не вариант. Нужно ввести магию. Типа если название картинки содержит "сосуга", то скачиваем её. Или если пост содержит магию, если это борда.
Чем вам не угодил https://ru.wikipedia.org/wiki/RetroShare или https://ru.wikipedia.org/wiki/Bitmessage
>>62803118
Ну тип своё. Мне очень даже нравится идея. Но пока что не очень всё удобно.
>>62802946
Ну был бы ты программистом, у тебя бы не возникло таких вопросов. Всё элементарно. Простыми словами: программа помнит, какие урл-адреса картинок она обработала и не лезет туда, скачивает только те, что появились позже (на бордах есть таймстампы в конце концоов).
Что до самих постов - то они не могут дублироваться из-за своей природы. Если положить рядом два нанопоста одинакового содержания с разными именами файлов - на выходе будет всё равно один пост. Потому что идентификатор нанопоста - формируется из его содержимого (которое включает в себя идентификатор треда и идентификатор сообщения, на которое этот нанопост отвечает).
>>62801892
У меня семерка, даунок.
>>62803291
Лах, у меня давно восьмера. Ссылку на дотнет тебе уже кинули. Алсо тут анон пишет что сбилдил под 2.0, а это даже в ХР заведётся без дотнета.
А что с защитой от флуда, аноны?
>>62803344
>у меня давно восьмера
Хуево быть тобой.
>Алсо тут анон пишет что сбилдил под 2.0
Что-то ссылок не вижу на 2.0
>>62803549
Качай 4.0, ссылку дали. Пригодится. Или если ты такой альтфак ставь себе дос.
>>62803392
Ты сам будешь себе модератор. Сможешь удалить любой пост и больше никогда его у себя не увидеть. И ты будешь знать что не будешь участвовать в его распространении. Всё это реализуется очень просто через добавление хэша неугдоного поста в игнор-лист.
>>62803212
Хуйню написал - загляни в будущее. С каждым днём у тебя растёт база обработанных урлов и в скором времени обработка каждой картинки будет занимать продолжительное время.
>>62803549
http://rghost.ru/52516880
Вот под 2.0
Заменил HashSet на List
>>62803734
Не тяжко ли будет удалять каждый пост, если, например, кто-то решил вайпнуть тред?
>>62793289
НаноОП - нанохуй. не ты, случайно, месяца 3 назад на чухаче тред пилил?
>>62803193
Мне тоже нравится идея ботнета
>>62803660
Я такой алтфак, что останусь сидеть на бордах со своей куклой, которая обрубает все аяксо/жиси фичи на бордах, и буду хвастать своим детям, что был в этом треде.
>>62803802
Ещё раз: был бы ты программистом, у тебя бы не возникло таких глупых мыслей. Даже лень что-то объяснять тебе.
Можно обойтись даже без сраной базы.
вот тебе база инфы о том, что обработано:
борда1-раздел1 обработан до поста №222
борда2-раздел1 обработан до поста №231
борда2-раздел3 обработан до поста №432
поспал, утром включаешь клиент он смотри в борде1-разделе1 последний пост - 264й. он берёт все посты от 222 до 264 ищет пнг картинки, чекает сайз (если не 512х512, 1024х512, 1024х256 итп) - скипает, если нет - качает. это так, к примеру.
Короче иди нахуй, сначала разбираться научись, потом лезь кого-то учить.
Пиздец, чем больше читаю, тем больше нихуя не понимаю и запутываюсь.
Объясните всё еще раз недоразвитому дегенерату МАКСИМАЛЬНО ПРОСТО.
Пожалуйста.
>>62803895
Нахуя? Разве в 2.0 нет хэшсета? Просто референс добавить на нужную дллку вроде бы надо.
И надеюсь функционал сберёг - перед добавлением проверяешь нет ли уже такого элемента?
И лучше исходник выложи же.
>>62804138
Да ты ебало заверни нахуй
>>62803895
http://rghost.ru/52517025
Забыл поправить EnumerateFiles на GetFiles
>>62804050
Вряд ли. Вот летом когда были каникулы я мог пилить эти треды много где.
>>62804321
толсто
>>62804138
ftp://ftp.ophuy.ru/pub/
Файл обработан до .......
Соснул блять?
>>62804319
Я снимаю свою кружевную маску анонимуса и нацепляю кожаный трип-код, чтобы никто не подумал, что это я тут пощу вирусы. Запости исходник, я залью на репу.
>>62804466
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.Text.RegularExpressions;
namespace nanoboard
{
public static class NanoDB
{
public static Dictionary<string, Nanopost> knownPosts = new Dictionary<string, Nanopost>();
public static List<string> knownThreads = new List<string>();
public static Dictionary<string, List<string>> threadAnswers = new Dictionary<string, List<string>>();
}
public class HtmlThreadBuilder
{
#region const header,footer
const string header = @"
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='ru'>
<head><title>Наноборда</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<LINK href='nano.css' rel='stylesheet' type='text/css'>
<script src='jquery.js'></script>
<script src='nano.js'></script>
<script>
function abox(h) {
var win = window.open('', 'nanopost', 'width=400,height=450');
win.document.write('<script src=""FileSaver.js""><\/script><script>function save(txt) {var d = new Date();var n = d.getTime();var blob = new Blob([txt], {type: ""text\/plain;charset=utf-8""});saveAs(blob, n + "".txt""); }<\/script><textarea id=""text"" style=""width:370px;height:370px""><\/textarea><br><button onclick=""save(\'' +h+ '\' + document.getElementById(\'text\').value)"">Получить нанопост<\/button>');
}
</script>
</head><body>
<h1>Наноборда forever</h1>
<div>
<div class='warningbox' id='warning'></div>
<a class='replyLink' href='index.html'>[Главная]</a>
<a class='replyLink' onclick='abox(""00000000000000000000000000000000"")'>[Создать новый тред]</a>
<a class='replyLink' href='help.html'>[Помощь]</a></div>";
const string footer = @"
<div id='foot' style='clear:both'>
<a class='replyLink' href='#foot' onclick='location.reload();'>[Обновить]</a>
</div>
</body></html>";
#endregion
static string MessageBlock(string thread, string hash, string replyto, string msg)
{
msg = msg.Replace("\n", "<br>");
string subthread;
if (NanoDB.knownThreads.Contains(hash))
{
subthread = "<div class='msgNo'>Перейти в тред №" + "<a class='thrNo' href='" + hash + ".html'>" + hash + "</a></div>";
}
else
{
subthread = "<div class='msgNo'>Сообщение №<a class='msgNo'>" + hash + "</a></div>";
}
return "<div class='msg' id='" + hash + "'>" +
"<div class='replyCmd' onclick='abox(\"" + thread + hash + "\")'>Ответ</div>" +
"<div class='replyCmd' onclick='abox(\"" + hash + hash + "\")'>Ветвь</div>" +
subthread +
"<div><a onclick=\"selectMsg('" + replyto + "')\" class='replyLink' href='#" + replyto + "'>>>" + replyto +
"</a></div>" + msg + "</div>";
}
public static string BuildThread(string threadHash)
{
var sb = new StringBuilder();
sb.AppendLine(header);
string msg;
if (NanoDB.knownPosts.ContainsKey(threadHash))
{
msg = NanoDB.knownPosts[threadHash].message;
}
else
{
msg = "Сообщение этого треда не загружено.";
}
msg = Nanopost.Format(msg);
sb.AppendLine(MessageBlock(NanoDB.knownPosts.ContainsKey(threadHash) ?
NanoDB.knownPosts[threadHash].GetPostHash() : ""
,
NanoDB.knownPosts.ContainsKey(threadHash) ?
NanoDB.knownPosts[threadHash].GetPostHash() : "",
"", msg));
if (NanoDB.threadAnswers.ContainsKey(threadHash))
{
var answers = NanoDB.threadAnswers[threadHash];
foreach (var a in answers)
{
if (NanoDB.knownPosts.ContainsKey(a))
{
var post = NanoDB.knownPosts[a];
sb.AppendLine(
MessageBlock(threadHash, post.GetPostHash(),
post.replytoHash, Nanopost.Format(post.message)));
}
}
}
sb.Append(footer);
return sb.ToString();
}
public static string BuildCatalog()
{
var sb = new StringBuilder();
sb.AppendLine(header);
var list = new List<string>();
foreach (var t in NanoDB.knownThreads) { list.Add(t); }
list.Reverse();
foreach (var t in list)
{
if (t == "0000000000000000") continue;
string msg;
if (NanoDB.knownPosts.ContainsKey(t))
{
msg = NanoDB.knownPosts[t].message;
}
else
{
msg = "Сообщение этого треда не загружено.";
}
msg = Nanopost.Format(msg);
sb.AppendLine("<div class='msg'>" + msg + "<br><a class='replyLink' href='" + t + ".html'>[Перейти в тред]</a></div>");
}
sb.AppendLine(footer);
return sb.ToString();
}
public static void WriteBoard()
{
foreach (var t in NanoDB.knownThreads)
{
var ts = BuildThread(t);
var fs = new StreamWriter("web/" + t + ".html");
fs.Write(ts);
fs.Close();
}
var ind = new StreamWriter("web/index.html");
ind.Write(BuildCatalog());
ind.Close();
}
}
public static class Nanoparser
{
public static void ParseData()
{
foreach (string file in Directory.GetFiles("data", "*.txt"))
{
Console.WriteLine(file);
string contents = File.ReadAllText(file);
new Nanopost(contents);
}
}
}
public class Nanopost
{
public readonly string threadHash = "0000000000000000";
public readonly string replytoHash = "0000000000000000";
public readonly string message = "";
public string GetPostTextRepresentation()
{
return threadHash + replytoHash + message;
}
public string GetPostHash()
{
var str = GetPostTextRepresentation();
var md5 = MD5.Create();
var hash = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
var sb = new StringBuilder();
foreach (var h in hash) sb.Append(h.ToString("x2"));
return sb.ToString().Substring(0, 16);
}
public Nanopost(string thread, string replyto, string msg)
{
if (msg != null) this.message = msg;
if (thread != null) this.threadHash = thread;
if (replyto != null) this.replytoHash = replyto;
NanoDB.knownThreads.Add(this.threadHash);
NanoDB.knownPosts[GetPostHash()] = this;
if (!NanoDB.threadAnswers.ContainsKey(this.threadHash))
{
NanoDB.threadAnswers[this.threadHash] = new List<string>();
}
NanoDB.threadAnswers[this.threadHash].Add(GetPostHash());
}
public static bool IsValid(string nanopost)
{
if (nanopost == null) return false;
if (nanopost.Length < 32) return false;
string pattern = "[0-9a-f]{32}";
if (!Regex.IsMatch(nanopost, pattern)) return false;
return true;
}
private static string ImgTag(string nanopost, string ext)
{
var matches = Regex.Matches(nanopost, "\\[img=[A-z0-9]{16}\\." + ext + "\\]");
foreach (var m in matches)
{
var ms = m.ToString();
ms = ms.Replace("[img=", "<img class='pic' src='../data/");
ms = ms.Replace("]", "'></img>");
nanopost = nanopost.Replace(m.ToString(), ms);
}
return nanopost;
}
public static string AutoClose(string nanopost, string opentag, string closetag)
{
var bdiff = Regex.Matches(nanopost, opentag).Count - Regex.Matches(nanopost, closetag).Count;
while (bdiff-- > 0)
{
nanopost += closetag;
}
return nanopost;
}
public static string Format(string nanopost)
{
nanopost = nanopost.Replace(">", ">");
nanopost = nanopost.Replace("<", "<");
nanopost = nanopost.Replace("\n", "<br/>");
nanopost = nanopost.Replace("", "<b>");
nanopost = nanopost.Replace("", "</b>");
nanopost = nanopost.Replace("[g]", "<span class='quote'>");
nanopost = nanopost.Replace("[/g]", "</span>");
nanopost = nanopost.Replace("", "<i>");
nanopost = nanopost.Replace("", "</i>");
nanopost = nanopost.Replace("", "<u>");
nanopost = nanopost.Replace("", "</u>");
nanopost = nanopost.Replace("", "<s>");
nanopost = nanopost.Replace("", "</s>");
nanopost = nanopost.Replace("[%]", "<span class='spoiler'>");
nanopost = nanopost.Replace("[/%]", "</span>");
nanopost = ImgTag(nanopost, "jpg");
nanopost = ImgTag(nanopost, "jpeg");
nanopost = ImgTag(nanopost, "png");
nanopost = ImgTag(nanopost, "gif");
nanopost = ImgTag(nanopost, "JPG");
nanopost = ImgTag(nanopost, "PNG");
nanopost = ImgTag(nanopost, "GIF");
nanopost = ImgTag(nanopost, "JPEG");
nanopost = AutoClose(nanopost, "<b>", "</b>");
nanopost = AutoClose(nanopost, "<<span class='quote'>", "</span>");
nanopost = AutoClose(nanopost, "<i>", "</i>");
nanopost = AutoClose(nanopost, "<u>", "</u>");
nanopost = AutoClose(nanopost, "<s>", "</s>");
nanopost = AutoClose(nanopost, "<span class='spoiler'>", "</span>");
return nanopost;
}
public Nanopost(string fileTxt)
{
if (!IsValid(fileTxt)) return;
threadHash = fileTxt.Substring(0, 16);
replytoHash = fileTxt.Substring(16, 16);
message = fileTxt.Substring(32);
NanoDB.knownThreads.Add(this.threadHash);
if (this.threadHash == "0000000000000000")
{
NanoDB.knownThreads.Add(GetPostHash());
}
NanoDB.knownPosts[GetPostHash()] = this;
if (!NanoDB.threadAnswers.ContainsKey(this.threadHash))
{
NanoDB.threadAnswers[this.threadHash] = new List<string>();
}
NanoDB.threadAnswers[this.threadHash].Add(GetPostHash());
}
}
public class MainClass
{
private static void CreateIfMissing(string path)
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
}
public static string ImageHash(string path)
{
try
{
var fb = File.ReadAllBytes(path);
var sha512 = SHA512.Create();
var hash = sha512.ComputeHash(fb);
var sb = new StringBuilder();
foreach (var h in hash) sb.Append(h.ToString("x2"));
return sb.ToString().Substring(0, 16);
}
catch (Exception) { Console.WriteLine("Error while reading file."); }
return null;
}
public static void Main(string[] args)
{
if (args.Length == 1)
{
var ihash = ImageHash(args[0]);
if (ihash == null) return;
// TODO: keep extension
File.Copy(args[0], ihash + ".jpg", true);
Console.WriteLine("Image saved as " + ihash + ".jpg");
return;
}
CreateIfMissing("data");
CreateIfMissing("web");
Nanoparser.ParseData();
HtmlThreadBuilder.WriteBoard();
Console.WriteLine("Файлы обработаны. Открывайте/обновляйте web/index.html");
Console.WriteLine(".html файлы никому отправлять не нужно, они временные и только ваши!");
Console.WriteLine("КАРТИНКИ: Перетащите файл картинки на nanohtml.exe, отпустите.");
Console.WriteLine("Рядом с файлом появится его копия с правильным уникальным именем.");
Console.WriteLine("В посте напишите [img=1234567890abcdef.jpg] (подставьте имя файла).");
Console.WriteLine("Картинку с этим именем не забудьте отправить вместе с файлом нанопоста.");
//Console.WriteLine("НАЖМИТЕ ЛЮБУЮ КЛАВИШУ, ЧТОБЫ ЗАКРЫТЬ ЭТО ОКНО");
//Console.ReadKey();
}
}
}
>>62793289
Хуета.
Борды свое отжили.
Мы тут по-привычке или по-незнанию.
>>62804518
да нунахуй вдруг тут вакаба чего покоцала, хотя бы через пастбин кинь если в [ code ] не хочешь оборачивать
>>62804562
Аааа ну ещё пару депенденсов нахуй потри которые скажет.
>>62804412
с такими гнилыми вариантами придётся слегка подождать если файлов много. выкачивать список файлов, сравнивать по именам. но это же не единственная альтернатива. впрочем мне например не страшно даже диски по городу пораскидывать пособирать - фан же.
>>62804621
Сори, твой вариант не сработает. Ты тупо заменил хэшсет на лист, функциональность потерялась. Надо пилить свой хэшсет. Я перепилю под 2.0 сам, не парься.
>>62804734
Ну ты же прогромист, придумай чё нить.
Вот поэтому нужно цеплять метку на файлы. Можно изменить подпись в заголовке.
>>62804969
Вот только не нужно тупить. Отличаются они только в скорости парса на дохуях объектов. Метод сортировки разный.
>>62805267
Или можно не метку, а предположим 3 первых пикселя делать ровно R, G и B соответственно. Тогда при скачке с фтп достаточно будет прокачать несколько байт, для определения наличия скрытого нано-поста.
>>62805267
Извини, но, не будучи программистом, тупишь как раз ты.
Пиздуй читать, что такое хэшсет, что такое лист, сколько элементов будет в myhashset и mylist после операций:
myhashset.Add(1);
myhashset.Add(1);
mylist.Add(1);
mylist.Add(1);
Желаю тебе поскорее стать программистом.
Вот запилил под 2.0, гребите кому нужно, сейчас выложу и в репозиторий:
http://pastebin.com/raw.php?i=kikf6jmE
>>62805844
>Но ведь Энакин соснул у Оби Вана. Все эти медихлорианы ничто по-сравнению с опытом и рассудительностью.
௵
>>62806018
Всем у кого просил .Net 4.0, замена файлика:
https://github.com/jabberx/nanohtml/releases/download/1111/nanohtml.exe
>jabberx
картинка с оп-пика весит ~300 кб. Это будет так охуенно, гонять её туда-сюда, чтобы просто узнать кто в каком треде пукнул. Или даже не одну придется гонять?
>>62806520
Из этих 300Кб 96Кб - полезная инфа. В такой объём можно впихнуть несколько сотен текстовых постов. Идея в том, что картинка будет не на каждый пук создаваться. Пустое место в картинке будет добиваться предыдущими постами твоими и чужими.
>>62793289
ОП, объясни как поставить и настроить, тред читал по диагонали, сил и времени вникать нет.
>>62806988
>полезная инфа
Ее слишком дохуя, полезной и бесполезной.
Лучше б нетсукуку допилили, бляди понтующиеся.
>>62807096
скачай (https://github.com/jabberx/nanohtml/releases/)
@
распакуй
@
запусти батник
@
открой web/index.html
но тебе нужны ещё нанопосты. найди их и сунь в data
свои нанопосты можешь постить, сохранять в data
попроси у анонов ключи к битсинку, чтобы общаться с ними через наноборду. они пока огородились.
௵௵௵
аноны бля кто в битсинке бля время настройте бля нормально бля а то бля синкаться не может у вас бля а вы бля сидите и думаете бля хули оно сука не синкается бля
>>62809572
есть желающие попасть на наноборду?
>>62810012
(которая у нас сейчас в битсинке)
ு
ு ு
>>62793289
Объясните долбоебу, что делать со скачанным архивом nano_board_alpha_002? Я нихуя не понял.
>>62810537
уже ничего, ведь есть более свежая версия, 008 вроде бы
внутри должны быть инструкции
и вот >>62807408
>>62807408
>но тебе нужны ещё нанопосты
И где мне их взять? тред не читал.
И я тупой и нихуя не понимаю. Ответь мне на два вопроса: зачем нужна наноборда в принципе? Сложно ли этой хуйней пользоваться?
>>62812095
>Сложно ли этой хуйней пользоваться?
Скачал@запустил@тред создал@нихуя не понял@закрыл@удалил.
Я тоже нихуя не прогромист, я НИХУЯ НЕ ПОНИМАЮ ВООБЩЕ
>>62812095
>И я тупой и нихуя не понимаю
Если спеть это 12 раз на мотив И Ленин всегда молодой, то получится драм-панк.
А тем временем на наноборде на Главной у тредов видно 3 последних поста и работают бампы.
>>62812095
1. Затем чтобы никто и никогда. Чтобы охуеть вообще пиздец. Чтобы мощно так знаешь. Дерзко. И навсегда. И ВЕЗДЕ. Что самое главное.
2. Не очень... любой справится. Капчу вводить не надо. Сейчас закрытое тестирование, вместо набега с пнг-контейнерами на борды мы сидим в своём битсинке и общаться довольно легко. Крутится авторебилдер, всё синкается автоматически через битсинк.
>>62804518
Что-то недостаточно SCALABLE-ENTERPRISE-SOLUTION
>>62813085
>битсинк
Щито этоа?
>>62813133
это джаберикс-стайл, детка
https://github.com/jabberx/doommy/blob/master/doommy.c
>>62813229
погугли bitsync. общая файлопомойка грубо говоря. аноны там сейчас пытаются общатся с помощью наноборды - и она выглядит довольно подходящей именно для битсинка.
но наноборда задумывалась вовсе не для битсинка.
пока наноборда не имеет клиента который позволил бы быстро и удобно набигать на обычноборды с криптоконтейрнеами в пнг картинках. то есть этот функционал есть, но он требует ручной работы (вручную упаковал, вручную запостил, вручную (что самое страшное) покачал другие пнгшки в поисках чужих контейнеров), чего никто делать не будет. клиент вроде как пилится. так что ждём-с.
>>62813418
Эх. Видимо, Наноборду мне не освоить.
>>62813512
Не переживай, запилят юзер-френдли клиент и освоишь. Сейчас она интересна может быть только тем, кто желает участвовать в разработке (и тестировании, что есть часть разработки по сути).
>>62813512
Лол, если бы в ней был смысл, то за этот ИТТ тред забанили бы половину отписавшихся, как за форс недоборды.
Борды умирают, но это не позорная смерть.
>>62813589
Да, буду надеяться, что так и будет.
>>62813610
Вот это точно, даже сосаке похуй.
>>62813693
Это потому что аура Наноборды вызывает трепет даже у сильных мира сего.
>>62813610
Шел бы ты отсюда...
>>62793289
Нанооп, а какая тут нанозащита от нановайпов? Если наноя начнут нанозасирать крупными нанопостами наноборду то все наноаноны будут нанокочать наномного безсмысленного нанотекста?
А наноидея мне нанопонравилась.
>>62814020
Нанонадо нанополагаться нанона нанотрепет наноанонов, нанокоторый наноподавит в наноних наножелание наносрать. Нанокроме-нанотого наночтобы наносрать нанопридётся нанопостить нанокартинки, а наноэто нанозначит нанонадо нанобудет нановводить нанокапчу. Нанотут наноособо нанонеразгонишься. Нанону нанои нанопотом нанобудут нанофильтры и нанолокальная наномодерация. А нановообще нанофлуд наноэто нанонорма нанодля нанотакой наносистемы. Наноно нанопридумать наноспособы наноборьбы наноможно нанобудет, наноя нанодумаю.
>>62814311
О наноборде уже нанознает слишком наномного нанонародца, среди нанокоторых полно нанорачья, чтобы в этом быть наноуверенным.
>>62814461
Да и хуй с ней. Ну возрастёт трафик, появится больше контента. Пусть и мусорного. Зато приятно. И всегда можно поудалять ручками. Это же тебе не двач, где ты не можешь ничего удалить, только скрыть на время если куклоскрипт поставил. Да норм всё будет. Не ссым.
>>62814622
Вдруг наноборды могут стать неким ковчегом в будущем, как и обычные борды много лет назад.
Или даже больше.
>>62810046
Да, дай ключ или как там?
Блядь не работает. Папка data полна бисинковских файлов. Запускаю nanohtml.exe, он перечисляет тексовые файлы и закрываеться но нихуя в index.html нету
>>62816176
очень очень странно
>>62816176
Удали битсинковские файлы (все с текстом в названии), тогда заработает.
Нано-хуйнано.Как тян на оп-пике зовут?
Ну так сейчас что-то живо? Кто-то с кем-то общается?
У меня битсинк ничего нового не синхронизировал со вчерашнего вечера. Мне нужно скачать новую версию, типо сегодняшнюю?
http://arhivach.org/thread/13342/
Если вкратце - наноборда это борда без какого-либо сервера, без необходимости в каком-либо соединении, протоколе. Есть нанопосты определённого формата, ссылающиеся на другие нанопосты (на ОП-пост и на пост, на который отвечает нанопост). Если на какой-то нанопост кто-то сослался как на ОП-пост - этот нанопост становится тредом. Если нанопост ссылается на корневой пост - он тоже становится тредом. Ссылка - хэш, который формируется из содержимого поста (а также его ссылок). Таким образом система полностью распределенная, каждый нанопост в своём текстовом файлике, ты собираешь нанопосты не важно откуда в большой чёрный мешок, а потом...
Что сейчас есть:
проект нанохтмл - https://github.com/jabberx/nanohtml/releases
из кучи файликов с нанопостами лепит целую борду с тредами
позволяет относительно удобно написать ответный пост или создать тред и формирует файлик нанопоста, который нужно распространить
опробовано на аноновском битсинке. есть разметка, картинки.
пикрелейтед.
проект пнг-контейнер - найдёте ссылку в архиваче
суть в возможности упаковки в пиксели пнг-картинки любых файлов. контейнер довольно вместительный. в изначальной идее предполагалось паразитирование на обычнобордах с целью распространять нанопосты.
пока никем не опробован.
Чего нет:
удобный клиент который бы юзал пнг-контейнеры и вертел бы все нормальноборды на хую. клиент в процессе разработки.
но общаться уже можно на битсинке.