//**** Mail Checking ******************************************************************* /** * Answer to check email prompt * reference2 - name of the server being checked */ OnBIFFBegin { "\0\s[0]Ага, предоставь это Люме.\e" "\0\s[0]Почта? Сейчас проверю.\e" "\0\s[0]\f[name,Hymmnos,hymmnos.ttf]\f[height,16]j.w. mea ADDR => \f[default]\n\n%(reference2)\e" } /** * Email number successfully retieved. * reference0 - number of emails * reference2 - name of the server being checked * reference7 - the senders and titles delimited by C_BYTE1 characters * see: https://ukagakadreamteam.github.io/ukadoc/manual/list_shiori_event.html */ OnBIFFComplete { if reference0 == 0 { "\0\s[0]%(username), в ящике пусто. Наверное лучше проверить позже.\e" "\0\s[0]Ничего нового.\e" } elseif reference0 > 0 && reference0 < 13 { "\0\s[0]Ответ от сервера получен, пришло %( OnCorrectEmailNumberSuffix( reference0 % 10 ) ). Посмотрим?" "\0\s[0]Передача данных завершена. На сервере %( OnCorrectEmailNumberSuffix( reference0 % 10 ) )." "\0\s[0]Письма из Хогвартса там всё ещё нет, но есть %( OnCorrectEmailNumberSuffix( reference0 % 10 ) ) новых писем. Сейчас зачитаю..." -- "\n\n\![set,autoscroll,disable]\_q%( OnPrintMailAsList( reference7 ) )\e" } elseif reference0 > 12 && reference0 < 100 { "\0\s[0]%( OnCorrectEmailNumberSuffix( reference0 % 10 ) ), довольно много. Давай не будем читать каждое.\e" } elseif reference0 > 99 { "\0\s[0]%( OnCorrectEmailNumberSuffix( reference0 % 10 ) )? %(username), давно ты в последний раз проверял свой почтовый ящик?\e" "\0\s[0]%( OnCorrectEmailNumberSuffix( reference0 % 10 ) ). Наверное, тебе всё таки стоит начать их читать.\e" } } /** * Dialogs in case Lyuma cannot fetch email for some reason * reference[0] - error code */ OnBIFFFailure { if reference0 == "timeout" //If the connection times out. { "\0\s[0]Сервер не отвечает, %(username).\e" "\0\s[0]Сервер не отвечает, нет смысла ждать дальше.\e" } /* * If the account blocks the ghost from accessing it. * In gmail it might happen if POP access is not allowed in the account settings, or Gmail has not proccessed POP access request yet. * might need to wait or go to Gmail > all settings > pop/imap forwarding */ elseif reference0 == "kick" { "\0\s[0]Сервер отказал в доступе. Люма что-то сделала не так?\e" } elseif reference0 == "defect" // If the information put into the POP menu is wrong. { "\0\s[0]Не получается. С этим аккаунтом что-то не так. Ты точно всё правильно настроил в настройках POP?\e" } else { "\0\s[0]Не работает. Вот, что говорит: '%(reference[0])'\e" } } /** * Function that prints a string of email senders and titles as unordered list * _argv[0] - a string of entries in format "SenderName Message title" separated by SOH(U+0001) chars * returns formatted headers as list * : last modifier will ensure only last return candidate gets returned */ OnPrintMailAsList : last { _headers = SPLIT(_argv[0],"") _letters = "" _headerRegex = "\s*(\S+)\s*<([^>]+)>\s(.*)" // Name Message title foreach _headers; _header { if RE_MATCH(_header,_headerRegex) > 0 { _letterTitle = SHIORI3FW.EscapeAllTags(RE_GETSTR[3]) if RE_GETSTR[3] == "" { _letterTitle = "<не указано>" } _letters += "От: %(RE_GETSTR[1]) \nАдрес: %(RE_GETSTR[2]) \nТема: '%(_letterTitle)'\n\n" } } _letters // returning formatted string } /** * Function to get a correct spelling for the given given number of emails * _argv[0] - number of emails recieved * returns - письмо(-сьма,-сем) * * NOTE: It's not placed in word.dic because its only useful for the function above, there is little use in adding it to the global envelope dictionary * furthermore its more of a function than a dictionary */ OnCorrectEmailNumberSuffix { case _argv[0] { when 1 { "одно новое письмо" } when 2-4 { "%(_argv[0]) новых письма" } when 0,5,6,7,8,9 { "%(_argv[0]) новых писем" } } }