Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Список с символами, которые будут вставляться в тайтл
- IZennoList symbolsList = project.Lists["Symbols"];
- // Список оригинальных тайтлов
- string[] titlesList = File.ReadAllLines(project.Directory+@"\Titles.txt", Encoding.UTF8);
- // Шанс добавления месяца и года в тайтл
- int monthPercentage = int.Parse(project.Variables["monthPercentage"].Value);
- int randomWord = 0;
- int randomValue = 0;
- // Генерируем случайное число от и до - количество итераций уникализации одного тайтла
- int randomIter = 0;
- Regex r2 = new Regex(@"(\d{1,9})", RegexOptions.Multiline | RegexOptions.IgnoreCase);
- MatchCollection mc2 = r2.Matches(project.Variables["iterationUniqueness"].Value);
- if (mc2.Count == 2)
- {
- randomIter = Global.Classes.rnd.Next(int.Parse(mc2[0].Value), int.Parse(mc2[1].Value));
- }
- // Перебор тайтлов
- foreach (string title in titlesList)
- {
- bool month = true;
- // Получение текущего месяца
- string monthToday = new DateTime(2015, 1, 1).ToString("MMMM", CultureInfo.CreateSpecificCulture("us")).ToUpper();
- // Проверка есть ли в тайтле месяц, если есть, отключаем добавление месяца с годом
- int index = title.IndexOf(monthToday, StringComparison.InvariantCultureIgnoreCase);
- if (index != -1)
- {
- month = false;
- }
- // Делим тайтл на слова
- string[] words = title.Split(' ');
- for(int i=0; i < randomIter; i++)
- {
- if (words.Length > 3)
- {
- // Если в тайтле больше трёх слов, то вставка символов после второго слова в тайтле
- randomWord = Global.Classes.rnd.Next(2, words.Length);
- }
- else
- {
- // Если в тайтле меньше трёх слов, то вставка символов в любое место тайтла, кроме начала
- randomWord = Global.Classes.rnd.Next(0, words.Length);
- }
- // Получение случайного слова из тайтла после которого будет вставлен символ
- string word = words[randomWord];
- string symbol = "";
- // Получение случайного символа из списка
- int randomSymbol = Global.Classes.rnd.Next(0, symbolsList.Count);
- symbol = symbolsList[randomSymbol];
- // Проверка на триггер вставки месяца в тайтл
- if (month == true)
- {
- randomValue = Global.Classes.rnd.Next(100);
- // Шанс вставки месяца с годом в тайтл 25%, если меньше, то вставки не будет
- if (randomValue < monthPercentage)
- {
- symbol = " "+monthToday+" 2020 ";
- // Если сделали вставку месяца с годом, то для этого тайтла повторную вставку отключаем
- month = false;
- }
- }
- // Создаём уникальное слово: слово + символ
- string wordUnique = word+symbol;
- // Записываем обратно в массив слов
- words[randomWord] = wordUnique;
- }
- Tools tool = new Tools();
- // Склеиваем слова обратно в тайтл с добавленными символами и обрезаем, если длиннее 100
- string result = string.Join(" ", words);
- string newTitle = "";
- if (result.Length >= 98)
- {
- newTitle = tool.TruncateLongString(result, 98, ".");
- }
- else
- {
- newTitle = result;
- }
- // Записываем результат в файл
- File.AppendAllText(project.Directory+@"\NewTitles.txt", newTitle+Environment.NewLine, Encoding.UTF8);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement