- Регистрация
- 07.08.2019
- Сообщения
- 83
- Благодарностей
- 97
- Баллы
- 43
Добрый день, может кому-то будет полезно.
Выкладываю небольшой шаблон для перевода текста на другие языки. Работает через 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 КБ Просмотры: 371
- 
		
			
		
		
		22,8 КБ Просмотры: 342
Для запуска проектов требуется программа ZennoPoster.
										Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
										Подробнее...
										Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
										Подробнее о том, где и как выполняется проект.
								
									Последнее редактирование: 
									
							
						
						
	
		
			
		
	
					



 
 
		 
 
		 
 
		 
 
		 
 
		