- Регистрация
- 07.08.2019
- Сообщения
- 76
- Благодарностей
- 80
- Баллы
- 18
Добрый день, может кому-то будет полезно.
Выкладываю небольшой шаблон для перевода текста на другие языки. Работает через 1 кубик C# через GET/POST.
На данный момент работает в одно-поток. Но всегда можно прикрутить финтифлюшки, если кому-то шаблон будет полезен и нужен.
Так-же буду рад услышать ваши предложения по обновлению, доработке и тд и тп.
Спасибо ^_^
Алярм! Актуальный код и шаблон в сообщении от 30.12.2022!
Код
Добавил шаблон в формате .xmlz
Выкладываю небольшой шаблон для перевода текста на другие языки. Работает через 1 кубик C# через GET/POST.
На данный момент работает в одно-поток. Но всегда можно прикрутить финтифлюшки, если кому-то шаблон будет полезен и нужен.
Так-же буду рад услышать ваши предложения по обновлению, доработке и тд и тп.
Спасибо ^_^
Алярм! Актуальный код и шаблон в сообщении от 30.12.2022!
Код
C#:
Random rand = new Random();
if (project.Variables["Source_language"].Value.Substring(0,2) == "US") project.Variables["Source_language"].Value = "en-US";
else if (project.Variables["Source_language"].Value.Substring(0,2) == "UK") project.Variables["Source_language"].Value = "en-GB";
else if (project.Variables["Source_language"].Value.Substring(0,2) == "PT") project.Variables["Source_language"].Value = "pt-PT";
else if (project.Variables["Source_language"].Value.Substring(0,2) == "BR") project.Variables["Source_language"].Value = "pt-BR";
else project.Variables["Source_language"].Value = project.Variables["Source_language"].Value.Substring(0,2);
if (project.Variables["Target_language"].Value.Substring(0,2) == "US") project.Variables["Target_language"].Value = "en-US";
else if (project.Variables["Target_language"].Value.Substring(0,2) == "UK") project.Variables["Target_language"].Value = "en-GB";
else if (project.Variables["Target_language"].Value.Substring(0,2) == "PT") project.Variables["Target_language"].Value = "pt-PT";
else if (project.Variables["Target_language"].Value.Substring(0,2) == "BR") project.Variables["Target_language"].Value = "pt-BR";
else project.Variables["Target_language"].Value = project.Variables["Target_language"].Value.Substring(0,2);
project.SendInfoToLog("Начали работу. Всего строк: " + project.Lists["Ваш текст"].Count.ToString() + ". Всего прокси: " + project.Lists["Прокси"].Count.ToString() + ".", true);
if (project.Lists["Прокси"].Count != 0)
{
lock (SyncObjects.ListSyncer)
{
project.SendInfoToLog("Меняем прокси", true);
project.Variables["Proxy"].Value = project.Lists["Прокси"][0].Trim();
project.Lists["Прокси"].RemoveAt(0);
}
}
for (int i = 0; i < project.Lists["Ваш текст"].Count; i++)
{
int mark = 0;
for (int j = 0; j < Convert.ToInt32(project.Variables["Counter_Global_Error"].Value); j++)
{
if (mark != 0) break;
for (int k = 0; k < Convert.ToInt32(project.Variables["Counter_Error"].Value); k++)
{
if (mark != 0) break;
var secret_id = ((long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds).ToString();
var number = rand.Next(10000000, 99999999).ToString();
var response = ZennoPoster.HttpPost("https://www2.deepl.com/jsonrpc", "{\"jsonrpc\":\"2.0\",\"method\": \"LMT_handle_jobs\",\"params\":{\"jobs\":[{\"kind\":\"default\",\"raw_en_sentence\":\"" + project.Lists["Ваш текст"][i] + "\",\"raw_en_context_before\":[],\"raw_en_context_after\":[],\"preferred_num_beams\":1}],\"lang\":{\"user_preferred_langs\":[\"" + project.Variables["Source_language"].Value + "\",\"" + project.Variables["Target_language"].Value + "\"],\"source_lang_computed\":\"" + project.Variables["Source_language"].Value + "\",\"target_lang\":\"" + project.Variables["Target_language"].Value + "\"},\"priority\":1,\"commonJobParams\":{},\"timestamp\":" + secret_id + "},\"id\":" + number + "}", "application/json;", project.Variables["Proxy_Kind"].Value + "://" + project.Variables["Proxy"].Value, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 5000, "", "", true, 5);
if (!string.IsNullOrEmpty(response))
{
if (response.Contains(",\"message\":\"Too many requests.\"}}"))
{
Thread.Sleep(rand.Next(Convert.ToInt32(project.Variables["Delay_LL"].Value), Convert.ToInt32(project.Variables["Delay_HH"].Value)));
break;
}
else
{
string message = Macros.TextProcessing.Regex(response, "(?<=\"postprocessed_sentence\":\").*?(?=\")", "0")[0].FirstOrDefault();
project.Lists["Результат"].Add(System.Text.RegularExpressions.Regex.Unescape(message));
mark++;
project.SendInfoToLog("Успешно перевели строку #" + i, true);
Thread.Sleep(rand.Next(Convert.ToInt32(project.Variables["Delay_L"].Value), Convert.ToInt32(project.Variables["Delay_H"].Value)));
break;
}
}
}
if ((mark == 0) && (project.Lists["Прокси"].Count != 0))
{
lock (SyncObjects.ListSyncer)
{
project.SendInfoToLog("Меняем прокси", true);
project.Variables["Proxy"].Value = project.Lists["Прокси"][0].Trim();
project.Lists["Прокси"].RemoveAt(0);
}
}
else if ((mark == 0) && (project.Lists["Прокси"].Count == 0))
{
project.SendErrorToLog("Кончились прокси", true);
return null;
}
}
if (mark == 0)
{
project.SendErrorToLog("Лимит по количеству неудач для проекта", true);
return null;
}
}
project.SendInfoToLog("Работа выполнена", true);
Вложения
-
11,8 КБ Просмотры: 311
-
22,8 КБ Просмотры: 278
Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: