рдлреНрд▓рд╛рд╕реНрдХ рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛: рдЬреВрди рд╕реЗ рдЬреВрди рддрдХ

рдореБрдЭреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рдирдП рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реАред рд╢реИрд▓реА рдореЗрдВ рдПрдХ рд╕рдордЧреНрд░ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдХрд╛рд░реНрдп рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╣рдо, рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ, рдЬреИрд╕реЗ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореБрдЭреЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдереЛрдбрд╝рд╛-рдереЛрдбрд╝рд╛ рдХрд░рдХреЗ рджреЗрдЦрдирд╛ рдерд╛ред рдХреЛрдИ рдЪрд┐рддреНрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рддрдХрдиреАрдХреА рд▓реЗрдЦред рдЕрдиреБрднрд╡реА рд▓реЛрдЧ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд╣реЛрдВрдЧреЗред

рддреЛ рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИред

рдореИрдВрдиреЗ рдирдП рд╕рд╛рд▓ рдХреЗ рдареАрдХ рдмрд╛рдж рдЕрдЬрдЧрд░ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЪрд╛рд░ рдорд╣реАрдиреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд, рд╕рд╛рде рд╣реА рдХрд╛рд▓реНрдкрдирд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЬреЛ рдареЗрд╕ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реАрдЦрддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ "рдореБрдХрд╛рдмрд▓рд╛" рдХрд╛рд░реНрдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рд╕реЗ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпрд╛ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ "рдореЗрд░реЗ рдорд┐рддреНрд░ рдорд┐рддреНрд░" рдиреЗ рдореБрдЭреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ (рдореБрдЭреЗ рдмреЙрдЯ рдХрд╛ рд╕рд╛рд░ рдпрд╛рдж рд╣реИ; рдпрд╣ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ - рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд▓реЗрдиреЗ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рдпрд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рд╢реБрд░реВ рдХреА рдереА рд╡рд╣ рд╣реИ рдкреНрд░рд╕рд┐рджреНрдз рдкрд╛рдпрдерди рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдФрд░ pyTelegramBotAPI рдЪреМрдЦрдЯреЗредред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдореБрдЭреЗ рд╕рд┐рд░реНрдл рдПрдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛ - рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рдерд╛ рдХрд┐ рдХреЛрдб рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреЙрдЯ рдХреЛ "рджреЗрдЦрдирд╛" рд╢реБрд░реВ рдХрд░рдирд╛ред рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдпрд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддрдм рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ "рд╣реВрдб рдХреЗ рддрд╣рдд" рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рдХреБрдЫ рдХреНрдпреЛрдВ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдХрд╣рд╛рдБ рдФрд░ рдХреНрдпрд╛ рдЖрдЬреНрдЮрд╛рдУрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд┐рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рдЕрд▓рдЧ рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдПрдкреАрдЖрдИ рд╕реНрд╡рдпрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рд╕реНрдерд┐рддрд┐ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдФрд░ рдореБрдЭреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреВрд░реА рд░рд╕реЛрдИ рдХрд╛ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореИрдВ рдкрд╛рдпрдерди рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдФрд░ pyTelegramBotAPI рдЪреМрдЦрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛редрдпрд╛ рд╢рд╛рдпрдж рдореИрдВ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдмрд╛рдЗрдХ рдмрдирд╛рдиреЗ рдкрд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдореИрдВ рд▓реМрдЯрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЗрди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рдХрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭреВрдВрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрдореА рдкрд░ рдПрдХ рдЕрдкреНрд░рд╛рдкреНрдп рд▓рдШреБ рдкрд╛рдареНрдпрдХреНрд░рдо рдерд╛ред рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЙрдбреЗрдореА рдкрд╛рдареНрдпрдХреНрд░рдо рдерд╛ рдЬрд╣рд╛рдВ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЕрдЬрдЧрд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдФрд░ pyTelegramBotAPI рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ (рдореИрдВ рдПрдХ рд▓рд┐рдВрдХ рдирд╣реАрдВ рджреВрдВрдЧрд╛, рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рди рд╣реЛ)ред рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдлреНрд▓рд╛рд╕реНрдХ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд "рд╕реИрдиреНрдп рдкрде" рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдкрдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИ - рдореБрдЭреЗ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдореВрд▓реНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХреЛрд░реНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП $ 10.99 (рдЙрджрдореА рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ "рдбрд┐рд╕реНрдХрд╛рдЙрдВрдЯ") рд╕реЗ рдЗрд╕реЗ рдЦрд░реАрджрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдлреНрд▓рд╛рд╕реНрдХ рдореБрдЭреЗ GET рдФрд░ POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЪреВрдВрдХрд┐ рдпрд╣ рд▓реЗрдЦ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рдпрджреНрдпрдкрд┐, рд╣рд░ рд╕рдордп, рдпрд╣ рдЕрдиреНрдп рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реБрднрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ: рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ "рдЧреБрдкреНрдд" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛, рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдПрдкреАрдЖрдИ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛, рд╕реНрдерд╛рдиреАрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд┐рдирд╛ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рд╡реЗрдмрд╣реВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХреИрд╕реЗред рдпрджрд┐ рдЖрдкрдХреА рд░реБрдЪрд┐ рд╣реИ, рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдФрд░ рдореИрдВ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд▓рд┐рдЦреВрдВрдЧрд╛ред

рдореЗрд░реЗ рдЬреВрди рдХреЗ рд╕рдордп рдХреЗ рд▓рдЧрднрдЧ 3-4 рджрд┐рдиреЛрдВ рдореЗрдВ рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реА рдХрд┐ рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдкрд╛рда (рдкрд╛рд░реНрд╕рд┐рдВрдЧ) рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЬреЛ рд▓рд┐рдЦрд╛ рд╣реИ, рдЙрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрджреЗрд╢, рд╕рд╛рде рд╣реА рдмрдЯрди (рд╕рдВрджреЗрд╢ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдЯрди рдмрджрд▓рдиреЗ рд╕рд╣рд┐рдд) рднреЗрдЬреЗрдВред

рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рдХрджрдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдерд╛ рдЬреЛ рдЗрд╕рдореЗрдВ рдмреЙрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмреЙрдЯ рдореЗрдВ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдкрд░ рдбреЗрдЯрд╛ рдЙрд╕ рдХрд╛рд░реНрдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдЙрд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

Google рдореЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдЧрд╛-рдмреБрдХрдмреБрдХ рдорд┐рдЧреБрдПрд▓ рдЧреНрд░рд┐рдирдмрд░реНрдЧ ( рдЙрдирдХреЗ рдмреНрд▓реЙрдЧ рдХрд╛ рдореВрд▓ рдпрд╣рд╛рдВ рд╣реИ ) рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ ред

рдЪреМрдерд╛ рдЕрдзреНрдпрд╛рдп рдлреНрд▓рд╛рд╕реНрдХ рдФрд░ SQLAlchemy ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛: "рд╡рд╛рд╣, рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЕрдм рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред" рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рд▓реЗрдЦрдХ рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдореИрдВ рдЙрд╕рдХреА рддрд░рд╣ рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛:

microblog\
  venv\
  app\
    __init__.py
    models.py
  main.py

Main.py рдореЗрдВ, рдореИрдВ рд╕рднреА рдореБрдЦреНрдп рдХрд╛рд░реНрдп Telegram API рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реВрдБред
App \ model.py рдореЗрдВ, рдореИрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рддрд╛ рд╣реВрдВред
рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ ___ init__.py, рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреИрд╕рд╛ рдХрд┐ рдорд┐рдЧреБрдПрд▓ рдЧреНрд░рд┐рдирдмрд░реНрдЧ рдиреЗ рд▓рд┐рдЦрд╛ рдерд╛ред

рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдзрд╛рд░рд╛ рдореЗрдВ, рд╡реЗ рдореБрдЭреЗ рдРрдк рдЖрдпрд╛рдд рдбреАрдмреА, рдРрдк рд╕реЗ рдирд╣реАрдВ рдЦреАрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ, рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯрд╛ рд▓рдЧрд╛ред рдирддреАрдЬрддрди, рдУрд▓реЗрдЧ рдореЛрд▓рдЪрд╛рдиреЛрд╡ рдПрдХ рдпреВрдЯреНрдпреВрдм рдЪреИрдирд▓ рдФрд░ рдЙрдирдХреЗ рд╡реАрдбрд┐рдпреЛ "рдХреНрд░рд┐рдПрдЬрд┐рдВрдЧ рдП рдмреНрд▓реЙрдЧ рдСрди рдлреНрд▓рд╛рд╕реНрдХ (рд╕рдмрдХ) - рдХреНрд░рд┐рдПрдЯрд┐рдВрдЧ рдкреЛрд╕реНрдЯреНрд╕ (рдореЙрдбрд▓) рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓рдЪреЗрдореА" рдореЗрдВ рдЖрдпрд╛ рдерд╛ред рд╡рд╣рд╛рдБ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреИрд╕реЗ рд╡рд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рд╕рдВрдмрдВрдз рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ (рдмрд┐рдирд╛ __in_____ рдмрдирд╛рдП рдмрд┐рдирд╛ рдореЙрдбрд▓рдбреЛрдо рдХреЛ рдРрдк рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдбрд╛рд▓реЗ

, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдм рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдЕрд╕рд╣рдорддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ (рдФрд░ рдереЛрдбрд╝рд╛ рдмрджрд╕реВрд░рдд рд╣реИ, рдЬреЛ рдореБрдЭреЗ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛ рдХрд┐ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХреИрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдП:

рдЫрд╡рд┐

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ app.py, model.py, main.py, app.sqlite (рд╢реЗрд╖ рдлрд╛рдЗрд▓реЗрдВ рд╡рд░реНрддрдорд╛рди рд╡рд┐рд╖рдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ) рд╣реИрдВред

App.py рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдХреЛрдб рд╣реИ:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from config import Config

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)

Model.py рдореЗрдВ:

from datetime import datetime
from app import db

class Users(db.Model):
    #   
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(120), index=True, unique=True)
    last_name = db.Column(db.String(128))
    first_name = db.Column(db.String(128))
    created = db.Column(db.DateTime, default=datetime.now())
    tasks = db.relationship('Tasks', backref='tasks')

    #     
    # def __init__(self, *args, **kwargs):
    #     super(Users, self).__init__(*args, **kwargs)

    def __init__(self, username, last_name, first_name):
        self.username = username
        self.last_name = last_name
        self.first_name = first_name

    def __repr__(self):
        return '<User {}>'.format(self.username)


class Tasks(db.Model):
    #    
    __tablename__ = 'tasks'
    id = db.Column(db.Integer, primary_key=True)
    owner_id = db.Column(db.Integer(), db.ForeignKey('users.id'))
    name = db.Column(db.String(120), index=True)
    start = db.Column(db.Boolean, default=False)
    finish = db.Column(db.Boolean, default=False)
    created_on = db.Column(db.DateTime, default=datetime.now())
    updated_on = db.Column(db.DateTime(), default=datetime.utcnow, onupdate=datetime.utcnow)

    #     
    def __init__(self, *args, **kwargs):
        super(Tasks, self).__init__(*args, **kwargs)

    # def __init__(self, name, last_name, first_name):
    #     self.name = name
    #     self.last_name = last_name
    #     self.first_name = first_name

    def __repr__(self):
        return '<Tasks {}>'.format(self.name)

Config.py рдореЗрдВ:

import os
from dotenv import load_dotenv
load_dotenv()

basedir = os.path.abspath(os.path.dirname(__file__))


#    
class Config(object):
    DEBUG = True
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
    # SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://{user}:{pw}@{url}/{db}'.format(user=os.environ.get('POSTGRES_USER'),
    #                                                                                 pw=os.environ.get('POSTGRES_PW'),
    #                                                                                 url=os.environ.get('POSTGRES_URL'),
    #
    #                                                                                 db=os.environ.get('POSTGRES_DB'))
    SQLALCHEMY_DATABASE_URI = (os.environ.get('DATABASE_URL') or
                               'sqlite:///' + os.path.join(basedir, 'app.sqlite')) + '?check_same_thread=False'
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # silence the deprecation warning

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдореИрдВрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдорд╛рди рд╣рдЯрд╛ рджрд┐рдП рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ .env рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдареЗрд╕ рдпрд╛ рдПрд╕рд╡реАрдПрди рдореЗрдВ рди рдЪрдордХреЗрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, app.db (рдЬрд╣рд╛рдВ app.sqlite рдЕрдм рд╣реИ) SQLALCHEMY_DATABASE_URI рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЭреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдорд┐рдЧреБрдПрд▓ рдЧреНрд░рд┐рдирдмрд░реНрдЧ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рд╛рдБ, рдФрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рд╕рдордЭ рдЧрдП рд╣реЛрдВрдЧреЗ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ .sqlite рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рджрд░реНрджрдирд╛рдХ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдПрдХ рдШрдВрдЯреЗ рдмрд╛рдж рд╕реЛрдЪрд╛ред

рдЖрдк рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрдВрд╕реЛрд▓ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, PyCharm рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдкрдХрд░рдг рд╣реИрдВ -> рдкрд╛рдпрдерди рдпрд╛ рдбреАрдмрдЧ рдХрдВрд╕реЛрд▓) рдкрд░ рдЬрд╛рдХрд░ sqlite рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЯреЗрдмрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рдпрд╣рд╛рдВ, рд╣рдо рдкрд╣рд▓реЗ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореЙрдбрд▓ рдЖрдпрд╛рдд рдбреАрдмреА рд╕реЗ рд╣реИ), рдФрд░ рд╕рдлрд▓ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж, db.create_all () рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЬрд╛рдирдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрджрд┐ рдореИрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдпрд╛рдд db рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ db.create_all () рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЧрдИ рд▓рдЧрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдмрдХрд╡рд╛рд╕ рд╣реЛрдЧреА, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ (рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдХреНрдпреЛрдВ)ред

рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЛрдЪрд╛ рдХрд┐ рдЕрдм рдХреЛрдИ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдмрдЪреА рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдореЗрдирдбреЛрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ рдХреЗ рддрд╣рдд, рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗред рдЦреИрд░, рдореИрдВ рдореЙрдбрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рдФрд░ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

try:
    find_user_in_db(username, first_name, last_name)
except NameError:
    print("user  ")
except:
    print("An exception occurred")

def add_users_to_db(username, last_name, first_name):
    """
        
    :return:
    """
    data = Users(username, last_name, first_name)
    db.session.add(data)
    db.session.commit()

def find_user_in_db(username, first_name, last_name):
    """
               
    :param username:
    :param first_name:
    :param last_name:
    :return:
    """
    user = db.session.query(Users).filter(Users.username == f'{username}').all()
    if not user:
        add_users_to_db(username, first_name, last_name)

рдЕрдВрддрд┐рдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрдЬрд╛рдп рдкрд╣рд▓реЗ = db.session.query (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) .filter (Users.username == f '{рдпреВрдЬрд╝рд░рдиреЗрдо}')ред First_or_404 () рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Users.query.filter_by (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо = '{рдпреВрдЬрд╝рд░рдиреЗрдо}') рдЦрдбрд╝реЗ рдереЗред first_or_404 ()ред рдпрд╣рд╛рдВ, рдореИрдВрдиреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рдЖрдзрд╛ рдШрдВрдЯрд╛ рдмрд┐рддрд╛рдпрд╛ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдпрд╣ рдХреНрд╡реЗрд░реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рдФрд░ рдХреЛрдИ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рдирд╣реАрдВ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред Google рдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рд▓реЗрдЦ рджрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд▓реЛрдЧреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ db.session.query (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ, рдореИрдВ рдПрдХреНрд╕, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рд╢реБрд░реВ рд╣реБрдЖред

рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдлреНрд▓рд╛рд╕реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдерд╛ред

рдпрд╣ рд▓реЗрдЦ рдХреЗрд╡рд▓ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджреЗрд╢ рдкрдврд╝рддреЗ рд╕рдордп рд╣рдо "рдЬреВрди" рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЦреБрдж рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдлреНрд▓рд╛рд╕реНрдХ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореБрдЭреЗ рдХреЛрдИ рдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ред рдЦреИрд░, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рдЕрдЧрд▓реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ред

PS рдЬреЛ рд╕реАрдзреЗ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ, рдлрд┐рд░ рдореИрдВ GitHub

PSS рдкрд░ рднрдВрдбрд╛рд░ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рджреЗрддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рджред

All Articles