Example #1
0
        public static void ParseStrings()
        {
            FileStream file = new FileStream(ImporterApp.filePath, FileMode.Open, FileAccess.Read, FileShare.None);

            using (var reader = new StreamReader(file))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    if (line.Contains(ImporterApp.NameUser1))
                    {
                        if (ImporterApp.SoloImporting)
                        {
                            Messaging.MessageUser2(line).Wait();
                            ProgressBar.Draw(CurrentMessage, TotalLineCountInt);
                        }
                        else
                        {
                            string message = line.Replace(ImporterApp.NameUser1 + ": ", "\n");
                            Messaging.MessageUser2(message).Wait();
                        }
                    }
                    else if (line.Contains(ImporterApp.NameUser2))
                    {
                        if (ImporterApp.SoloImporting)
                        {
                            Messaging.MessageUser2(line).Wait();
                            ProgressBar.Draw(CurrentMessage, TotalLineCountInt);
                        }
                        else
                        {
                            string message = line.Replace(ImporterApp.NameUser2 + ": ", "\n");
                            Messaging.MessageUser1(message).Wait();
                        }
                    }
                }
            }
            return;
        }
Example #2
0
 internal static void Run()
 {
     Console.Clear();
     if (printResult)
     {
         Console.BackgroundColor = ConsoleColor.Yellow;
         Console.ForegroundColor = ConsoleColor.DarkRed;
         Console.WriteLine("ADVANCED MODE ENABLED: This will print detailed output while importing the chat.\n\n");
         Console.ResetColor();
     }
     Console.BackgroundColor = ConsoleColor.Blue;
     Console.ForegroundColor = ConsoleColor.White;
     Console.WriteLine("HELLO! WELCOME TO TELEGRAM CHAT IMPORTER!\n\nThis app will import your TXT conversations from third-party apps (like WhatsApp) into your existing Telegram Chat with your partner. \nRead all the documentation on the GitHub page (https://github.com/TelegramTools/TLImporter/wiki) for all the important information.\n\nPress ENTER to continue");
     Console.ReadLine();
     Console.ForegroundColor = ConsoleColor.White;
     Console.BackgroundColor = ConsoleColor.DarkCyan;
     AskConfirmation("\nWARNING: Telegram allows only a specific and unknown amount of messages within a specific timeframe for security reasons. You might not be able to message friends for a small period of time.\nThis is known as a 'flood limitation'.\n\nThus, I suggest you to do this at night or in a period of time that you do not need to use Telegram. Check https://github.com/TelegramTools/TLImporter/wiki/Before-starting for more information.\n\nType, exactly, 'I UNDERSTOOD', to continue:", true, true, "I UNDERSTOOD");
     ConfirmationConfirmed = false;
     Console.ResetColor();
     Console.WriteLine("Logging you in Telegram...");
     Auth.AuthUser1().Wait();
     AskConfirmation("Do you want to import a conversation using two users, in a 1:1 format? Otherwise, the chat will be imported inside your 'Saved Messages'. [y/n]: ", false);
     if (ConfirmationConfirmed)
     {
         SoloImporting         = false;
         ConfirmationConfirmed = false;
     }
     else
     {
         SoloImporting         = true;
         ConfirmationConfirmed = false;
     }
     if (!SoloImporting)
     {
         Auth.AuthUser2().Wait();
     }
     while (!AllIsImported)
     {
         NotChosenUser = false;
         Console.Write("\n\nNow, please, type the complete path of the TXT file you want to import. You can also drag-and-drop it here.\n\nFILEPATH MUST NOT INCLUDE SPACES: ");
         filePath = Console.ReadLine();
         while (filePath.Contains(" "))
         {
             Console.Write("\n\nThe filepath contains an space. Please, make sure that there aren't spaces in the filepath and try again: ");
             filePath = Console.ReadLine();
             if (!filePath.Contains(" "))
             {
                 break;
             }
         }
         CheckUsers();
         while (!ImporterApp.FileIsValid)
         {
             Console.BackgroundColor = ConsoleColor.Red;
             Console.ForegroundColor = ConsoleColor.Black;
             Console.WriteLine("We couldn't find " + NameUser1 + " and " + NameUser2 + " in this file.\n\nPlease, check the documentation at https://github.com/TelegramTools/TLImporter to make sure that you are doing eveything right.\n\n");
             Console.ResetColor();
             AskConfirmation("Do you want to try again or close the app? (Yes (y), for trying again. No (n), for closing the app) [y/n]: ", false);
             if (!ConfirmationConfirmed)
             {
                 Environment.Exit(0);
             }
             else
             {
                 CheckUsers();
                 ConfirmationConfirmed = false;
             }
         }
         Console.BackgroundColor = ConsoleColor.Green;
         Console.ForegroundColor = ConsoleColor.Black;
         Console.WriteLine("\nThis file is valid to be imported. Counting the number of messages...");
         Console.ResetColor();
         TextHandler.TotalLines();
         Console.WriteLine("The file has " + TextHandler.TotalCount + " lines.");
         TextHandler.UserLines(NameUser1, false);
         Console.WriteLine("\n" + NameUser1 + " has " + TextHandler.CountedLines1 + " messages.");
         TextHandler.UserLines(NameUser2, true);
         Console.WriteLine(NameUser2 + " has " + TextHandler.CountedLines2 + " messages.");
         AskConfirmation("Do you also want to upload to the chat the TXT file used? [y/n]: ", false);
         if (ConfirmationConfirmed)
         {
             UploadTXT             = true;
             ConfirmationConfirmed = false;
         }
         else
         {
             UploadTXT             = false;
             ConfirmationConfirmed = false;
         }
         ConfirmationConfirmed = false;
         Console.WriteLine("Making sure that everything is ready for the import process... This will take nanoseconds :)");
         {
             if (NameUser1.Contains(":"))
             {
                 NameUser1.Replace(":", "");
             }
             if (NameUser2.Contains(":"))
             {
                 NameUser2.Replace(":", "");
             }
             TextHandler.CurrentMessage = 0;
             if (SoloImporting)
             {
                 if (filePath == null | TextHandler.TotalCount == null | TextHandler.CountedLines1 == null | TextHandler.CountedLines2 == null | NameUser1 == null | NameUser2 == null | Auth.phone1 == null | Messaging.User1Id == 0 | FileIsValid == false | ConfirmationConfirmed == true | AllIsImported == true)
                 {
                     Console.WriteLine("\nSomething went wrong and the app can't recover the process. You will need to start over. Press ENTER to exit and try again.");
                     Console.ReadLine();
                     Environment.Exit(0);
                 }
             }
             else if (filePath == null | TextHandler.TotalCount == null | TextHandler.CountedLines1 == null | TextHandler.CountedLines2 == null | NameUser1 == null | NameUser2 == null | Auth.phone1 == null | Auth.phone2 == null | Messaging.User1Id == 0 | Messaging.User2Id == 0 | FileIsValid == false | ConfirmationConfirmed == true | AllIsImported == true)
             {
                 Console.WriteLine("\nSomething went wrong and the app can't recover the process. You will need to start over. Press ENTER to exit and try again.");
                 Console.ReadLine();
                 Environment.Exit(0);
             }
             AskConfirmation("\nEverything is ready for the import process.\nREMEMBER: You might trigger flood limits in your account. Read https://github.com/TelegramTools/TLImporter/wiki/Before-starting for more information.\n\nStart? [y/n]: ", true);
             ConfirmationConfirmed = false;
             Console.WriteLine("");
             Messaging.MessageUser2("BEGINNING OF THE IMPORT OF " + filePath, false).Wait();
             TextHandler.ParseStrings();
             Messaging.MessageUser2("END OF THE IMPORT OF " + filePath + "\n\nA total of " + TextHandler.TotalCount + " messages were imported successfully.\n\n" + NameUser1 + " has " + TextHandler.CountedLines1 + " imported messages.\n" + NameUser2 + " has " + TextHandler.CountedLines2 + " imported messages.\n\nImported using Telegram Chat Importer. Available at https://github.com/TelegramTools/TLImporter", false).Wait();
             if (UploadTXT)
             {
                 Messaging.UploadFile().Wait();
             }
             if (!SoloImporting)
             {
                 Messaging.MarkMessagesAsRead().Wait();
             }
             Console.WriteLine("\n\n\nSUCCESS!! All the messages were imported succesfully!");
             AskConfirmation("\n\nDo you want to import another file?. Otherwise, data will be cleared. [y/n]: ", false);
             if (ConfirmationConfirmed)
             {
                 ChooseUsers();
                 ConfirmationConfirmed = false;
             }
             else
             {
                 if (File.Exists(@"sessionUser1.dat"))
                 {
                     File.Delete(@"sessionUser1.dat");
                 }
                 if (File.Exists(@"sessionUser2.dat"))
                 {
                     File.Delete(@"sessionUser2.dat");
                 }
                 AllIsImported = true;
             }
             ConfirmationConfirmed = false;
         }
     }
     Console.WriteLine("\nAll the data has been cleared and your session revoked. Now, you can log out the session on your mobile device or Telegram Desktop if you want.");
     Console.BackgroundColor = ConsoleColor.Cyan;
     Console.WriteLine("\n\nThank you for using this app. If you like it, please, star the GitHub repository :D at https://github.com/TelegramTools/TLImporter \n\nPress ENTER to exit.");
     Console.ReadLine();
     Environment.Exit(0);
 }