Особливості бота публікувального та формування пермлінку

in Ukraine on Steem3 days ago

Особливості бота публікувального та формування пермлінку

Щодо можливості відкладеноо публікування дописів, за допомогою безоплатного бота, який згадувався раніше.

По-перше, було виявлено, це щодо самого сервісу. Ключі які додані й засекречені, не показуються навіть при включенні функції редагувати, тобто просто показує порожнє поле. Тож ніхто не підгляне, за умов належної безпеки на різних рівнях.

По-друге, ота відкладена публікаці, чи радше запланована, доступна лише на steempro.com, у мене не вистачило розуму або терпіння чи разом їх разом взятих, щод дало воно бажаний результат. І до того ж, там запитується для цього діла фінансовий ключ. Не пам'ятаю, щоб віна надавався на upvu.org (але він зараз в ауті).

По-третє, бот, тобто скрипт, дає ще одне-два покращення. Це формування пермлінку відповідною українською транслітераціює, як то було постановлено КМУ (так написав ШІ, а мені не захотілось перевіряти деталі). Додатковий плюс до ідентифікації і відокремлення української мови та культури від москалячої. Бо воно так чере steemit.com і шльопає як було.

І мабуть найцікавіше, що дописів можна легко додавати багатенько. Тобто як є написаний матеріал, за допомогою скрпиптів, на пітоні чи ще чомусь, формувати їх у потріний формат розмітки й додавати на сайт.

Приклади.png
Червоним підсвічено те, що мені не подобається, а зеленим потрібні правки

І як можна побачити на зображенні вище, різні сервіси доступу формують пермлінк по різному.
Наприклад, у мене мій редкктор, чомусь не бачив української взагалі, тому були просто цифри. SteemX робить лише набір символів. Steempro наче робить, як Steemit, але додає ще якісь символи, а Steemit як і робив, цілком все ім'я і без цифр зайвих. Змін там не було, та й особлива ураїнська мова, яка зазнає змін і так до неї і не підійдеш з наплигу)). Та в результаті, воно трохи виходить з москалячим відлунням. Де и транслітерується через i. Та завдяки ШІ це поправлено, тепер принаймні бот і редактор, роблять потрібний пермлінк. Хоча там все можна на власний смак робити.

В кодові це має десь такий вигляд для транслітерації:

window.submitToSteem = () => {// --- НОВИЙ БЛОК ТРАНСЛІТЕРЦІЇ (КМУ 2022) ---  
function createPermlinkUA(title) {  
    let text = title.toLowerCase().trim();  
    text = text.replace(/зг/g, 'zgh'); // Правило "зг"  
    const specialStart = { 'є': 'ye', 'ї': 'yi', 'й': 'y', 'ю': 'yu', 'я': 'ya' };  
    const specialMid = { 'є': 'ie', 'ї': 'i', 'й': 'i', 'ю': 'iu', 'я': 'ia' };  
    const standardMap = {  
        'а': 'a', 'б': 'b', 'в': 'v', 'г': 'h', 'ґ': 'g', 'д': 'd', 'е': 'e', 'ж': 'zh',  
        'з': 'z', 'и': 'y', 'і': 'i', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o',  
        'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'kh', 'ц': 'ts',  
        'ч': 'ch', 'ш': 'sh', 'щ': 'shch', 'ь': '', '’': '', "'": '', 'ʼ': ''  
    };  
    let result = text.split(/([\s\-]+)/).map(part => {  
        if (/[\s\-]+/.test(part)) return part;  
        let word = "";  
        for (let i = 0; i < part.length; i++) {  
            const char = part[i];  
            if (i === 0 && specialStart[char]) word += specialStart[char];  
            else if (i > 0 && specialMid[char]) word += specialMid[char];  
            else if (standardMap[char] !== undefined) word += standardMap[char];  
            else word += char;  
        }  
        return word;  
    }).join('');  
    return result.replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-').replace(/^-+|-+$/g, '').substring(0, 150);  
}  

І рядочок там де формується тіло пермлінка:

const parentPermlink = tagsArray[0]; const permlink = createPermlinkUA(title); // Тепер без Date.now() і з правильним транслітом  

Хоч воно і мені й іншим не дуже зрозуміло, проте хтось та в цьому розбирається і для ШІ будуть точніші координати.

Coin Marketplace

STEEM 0.06
TRX 0.29
JST 0.054
BTC 71753.18
ETH 2098.65
USDT 1.00
SBD 0.50