Exemplo n.º 1
0
        public void InitializeTLInterfaces()
        {
            string[]      sessions             = Directory.GetFiles(_sessionsDirectoryPath);
            List <string> unAuthorizedSessions = new List <string>();

            foreach (var sessionFile in sessions)
            {
                string session;
                if (sessionFile.EndsWith(".dat"))
                {
                    session = sessionFile.Substring(0, sessionFile.Length - 4);
                }
                else
                {
                    session = sessionFile;
                }
                if (!_tlInterfacePackages.Any(p => p.Interface.SessionPath == session))
                {
                    TLInterface tLInterface = new TLInterface(session);
                    if (tLInterface.IsAuthorized)
                    {
                        _tlInterfacePackages.Add(new TLInterfacePackage()
                        {
                            Interface    = tLInterface,
                            IsAvailable  = true,
                            LastCallTime = DateTime.Now
                        });
                    }
                    else
                    {
                        unAuthorizedSessions.Add(session);
                    }
                }
            }
            foreach (var session in unAuthorizedSessions)
            {
                File.Delete(session + ".dat");
            }
        }
Exemplo n.º 2
0
        private static async Task AddSession(string[] args)
        {
            string phoneNumber;

            if (args.Count() > 0)
            {
                phoneNumber = args[0].Trim();
            }
            else
            {
                Console.Write("Enter phone number: ");
                phoneNumber = Console.ReadLine().Trim();
                if (string.IsNullOrEmpty(phoneNumber))
                {
                    Console.WriteLine("Session creation has been cancelled.");
                    return;
                }
            }
            string      sessionName = string.Format(@"sessions\{0}", DateTime.Now.ToIntSeconds());
            TLInterface tl          = new TLInterface(sessionName);

            try
            {
                await tl.SendCodeAsync(phoneNumber);
            }
            catch (InvalidOperationException e)
            {
                Console.WriteLine("Error: {0}", e.Message);
                File.Delete(sessionName + ".dat");
                return;
            }
            Console.Write("Enter code: ");
            try
            {
                await tl.EnterCodeAsync(Console.ReadLine().Trim());
            }
            catch (PasswordRequiredException)
            {
                Console.Write("Enter your cloud password: "******"Error: {0}", e.Message);
                    File.Delete(sessionName + ".dat");
                    return;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}", e.Message);
                File.Delete(sessionName + ".dat");
                return;
            }
            if (tl.IsAuthorized)
            {
                Console.WriteLine("Session added successfully.");
                feeder.InitializeTLInterfaces();
            }
            else
            {
                Console.WriteLine("Error.");
                File.Delete(sessionName + ".dat");
            }
        }