-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Potrable nanoboard #5
Comments
|
И да, вот сами нанопосты, можно ли их тоже высунуть из этой базы,
Ещё бы сделать комментарии в настройках, там где список тредов,
содержит аж 5 ошибок, и попробуй найти их. Ну и... И ещё... Сделать бы отображение постов, в виде дерева, как в клиенте 3.0. |
@Karasiq, посты с вашей борды не видно в третьем клиенте. UPD: Достаточно было подобавлять все посты ветки в очередь, обнулить случайные посты, И да, несмотря на то, что посты с третьего клиента - у вас успешно грузятся, Сообщение было написано в клиенте 3.0, и прогружено в вашей portable-наноборде.
Исходя из всего вышеописанного, для обратной совместимости с клиентом 3.0 Ну и, конечно же, имя файла, и его расширение, UPD: (Сделав это так, чтобы сохранить обратную совместимость со старым xmg-форматом в клиенте 3.0.) Если же имя файла не указано, но указано расширение (или mime-тип файла), Для генерации файла, кстати, var len = 20;/*<--String Length ...*/for(var s = "", rem = 100000000, n = Math.random()*10*rem; s.length < len;){rem=10*rem%n; s+= (rem%10!==0)?rem.toString(36).replace(".", "").substr(0, len-s.length):"";}//document.write("<br>", 's.length: ', s.length, 's: ', s); Можете вставить её в консоль браузера и пошатать параметр Также, можно сделать третий клиент совместимым с вашим форматом нанопостов, P.S.: Я вижу, что вставка bb-кода, при выборе файла, в клиенте 3.0, //строка 75:
$('#result').text('[xmg='+res.substring(res.indexOf(',')+1)+']');
//строка 121:
$('#result').text('[xmg='+dataURL.substring(dataURL.indexOf(',')+1)+']');
//('[xmg='+(подстрока из dataURL с позиции следующей после позиции найденной запятой)+']'); К тому же и интерпретация BB-кода с тегом xmg - c выводом, в виде download-ссылки, //строка 111:
if (img.src.startsWith('data:image/jpeg;base64,UEsDB')) {//if PK at first - then zip //saving backward compatibility with old zipJPEGs
$(img).replaceWith($('<a download=file'+(i+1)+'.zip href='+img.src.replace('image/jpeg','application/zip')+'>[file'+(i+1)+'.zip]</a>'));
} Вот так как-то надо обрабатывать этот bb-код [xmg] и у вас - для обратной совместимости. Я также вижу xmg, у вас уже есть - вот здесь: Ну и конечно же, в скриптах клиента 3.0 - можно было бы прописать и bb-код var file = _loader.files[0]; Оттуда, как и с любого объекта "new File()", Чтобы через [file], как и у вас - можно было бы сделать это, как-то вот так вот: //строка 76 в файле img2base64.js:
$('#result').text('[file name="'+file.name+'" type="'+file.type+'"]'+res.substring(res.indexOf(',')+1)+'[/file]'); и в nanoclient.js ещё, где download к ссылке цепляется - имя файла занести, и mime-type в dataURL... И да, если делать там, в клиенте 3.0, Поясню, почему я зациклился именно на stable версии клиента 3.0? Но при этом, 32-битная версия client 3.0 успешно запускается и на XP |
img2base64.js - changed. 1. Replace bb-code "xmg" to bb-code '[file name="filename.extension" type="mime-type"]BASE64-CONTENT[/file]' Now any file can be uploaded, like on karasiq-nanoboard. Filename and mime-type extracting when file selected. See lines 63, 76 and 122 in img2base64.js 2. Add some comments. 3. The page /pages/download_as_binary.html was been added - to download any base64 or dataURL, as binary file. nanoclient.js - changed. 4. At line 1 was been added the function to check without throw error, is content - base64 encoded or not. 5. At line 106 was been added the cycle for extracting base64, filename and filetype from '[file name="filename.extension" type="mime-type"]BASE64-CONTENT[/file]', and replace this to link for downloading the file. 6. At line 172 was been added the link to download_as_binary.html with base64 encoded png icon. This code can be commented if you don't see any sense with this. 7. Old code saved at line 193. 8. Add comment at line 206. [xmg] - tags still supported and working, but not adding now. See: Karasiq/nanoboard#5 If anyone cann't download any file, you can using download_as_binary.html Just download this, put in 'pages', and open http://127.0.0.1:7346/pages/download_as_binary.html _________________________ Have a nice day.
В общем, вроде-как, порешал я эту фигню с файлами. nanoboard/nanoboard#6 //строка 111:
if (img.src.startsWith('data:image/jpeg;base64,UEsDB')) {//if PK at first - then zip //saving backward compatibility with old zipJPEGs
$(img).replaceWith($('<a download=file'+(i+1)+'.zip href='+img.src.replace('image/jpeg','application/zip')+'>[file'+(i+1)+'.zip]</a>'));
} Просто проверив начальные байты бейса. //first bytes of base64 contains signatures for different file types
if(str.substring(0, 4)==='/9j/') // "яШя" check JPEG signature in first bytes of file
{
str = 'data:image/jpeg;base64,'+str; //set jpeg
}else if(str.substring(0, 4)==='R0lG'){ //gif
str = 'data:image/gif;base64,'+str;
}else if(
str.substring(0, 8)==='PD94bWwg' // "<xml" beginning from xml-tag
|| str.substring(0, 8)==='PHN2Zwog' // or "<svg" beginninb from svg-tag
){
str = 'data:image/svg+xml;base64,'+str; //set svg+xml
}else{ //or
str = 'data:image/png;base64,'+str; //by default set PNG
} Ну и, надо бы, нам, как-нибудь, совместными усилиями - И да, что за фрактальная музыка, у вас там, такая? )) |
@Karasiq, Консоль - тут: https://pastebin.com/farvg4Xv UPD: достаточно было разблокировать nanoboard.bat в фаерволе (Comodo firewall), В категорию "test" зайти нельзя. //строка 75 в файле nanoboard-restore\scripts\img2base64.js:
// $('#result').text('[xmg='+res.substring(res.indexOf(',')+1)+']');
//заменена на
$('#result').text('[file name="'+file.name+'" type="'+file.type+'"]'+res.substring(res.indexOf(',')+1)+'[/file]'); и в нём какие-то спецсимволы, либо [xmg-тег без бейса... А также, возможно всё глючит нафиг - из-за конструкции Ещё, хотелось бы удалить все контейнеры и прогрузить их по новой, Также, хотелось бы задать папку для настроек в портабельной версии, при запуске её, |
Да, где-то тут вот и надо пофиксить... В клиенте 3.0 такие посты грузятся нормально. В консоли браузера (клавиша F12), при клике на категорию test, я вижу следующее:
Следующие три поста содержат ошибки, стопорящие наноборду 946d50e33c413a93d7c963424e0846d9
c19a06c128f78e5946014883bc018dd9
4dcf53a58e839e8fddce6959222ed675
И ещё, помимо После throw Error, выполнение скрипта - стопорится... //check is base64 without throw error
function isBase64(str) {//return true, or false
if(str==='' || str.trim()===''){return false;}//if string is empty or not contains base64 characters
try {
return btoa(atob(str)) == str; //true if base64
} catch (err) {
return false;
}
} А дальше уже, если true, то можно продолжить - декодинг бейса, функцией atob. if(isBase64(str)){
//код
}else{
console.log('str is not base64-encoded. str = ', str);
}
//and continue script... bb-код file - я протестил отдельно, в категории Test2. Всё работает. |
Есть несколько вопросов.
как эта: nanoboard-restore.zip
The text was updated successfully, but these errors were encountered: