
рд╣рдо рдЯрд┐рдХрдЯ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдХрд╣рд╛рдиреА рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ - рд╣реИрдкреНрдкреАрдЯрд┐рдХреНрд╕рдмреЙрдЯ, рд╢реБрд░реБрдЖрдд
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред
рджреВрд╕рд░реЗ рдореЗрдВ рдореИрдВ рд╕реНрд╡рдпрдВ рдмреЙрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛, рд╕рд╛рде рд╣реА рдРрд╕реЗ рд╡рд┐рдЪрд╛рд░ рднреА рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдмрдирдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдмреЙрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рддрдХ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдереА, рдЗрд╕рд▓рд┐рдП рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЯреЗрд▓реАрдЧреНрд░рд╛рдо-рдореИрд╕реЗрдВрдЬрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛ред рдпрд╣ 1 рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрддрдирд╛ boltologically рдирд╣реАрдВ рдирд┐рдХрд▓рд╛, рдЗрд╕рд▓рд┐рдП рдзреНрдпрд╛рди рдХреЛрдб рдХрд╛ рдПрдХ рдмрд╣реБрдд рдХреБрдЫ рд╣реИред
рд╕реНрдкреЙрдпрд▓рд░: рд╣реИрдкреНрдкреАрдЯрд╕рдмреЙрдЯ рд╡рд┐рджреЗрд╢реА рд╕рд░реНрд╡рд░, рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдФрд░ рд░реВрд╕реА рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рджрд┐рди рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ) =)
рдЕрджреНрдпрддрди: рдмреЙрдЯ рдерд┐рдпреЗрдЯрд░ рдЬрдирддрд╛ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореАрдбрд┐рдпрд╛ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдмрд╛рдврд╝ рддреЗрдЬреА рд╕реЗ рдмрдврд╝реАред рдЦреЗрд▓ рдХреЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж, "рдЗрд╕реЗ рддреБрд░рдВрдд рдЙрдард╛рдПрдВ, рдпрд╣ рдХреИрд╕реЗ рдЧрд┐рд░ рдЧрдпрд╛" рдмреЙрдЯ рдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдбрд╝рд╛рди рднрд░реА рдФрд░ рдХрдИ рд╕реБрдзрд╛рд░реЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред рдореИрдВ рд╕рдВрддреБрд╖реНрдЯ рд╣реВрдВ =)
1. рдЦрд░реЛрдВрдЪ рд╕реЗ рд╢реБрд░реВ
рдЪреВрдВрдХрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯреНрд╕ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╢рдмреНрдж рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдореВрд▓ рд▓реЗрдЦреЛрдВ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреА рдереА, рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВред рд╣рд╛рдБ, рд╡реИрд╕реЗ, рдЙрд╕ рд╕рдордп рдмреИрдХ-рдПрдВрдб рдХреНрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рднреА рдХрд▓реНрдкрдирд╛ рдХреА рдереА))
рд╕рдмрдХ рдХрд╛ рдпрд╣ рд╕реЗрдЯ рд╕рдмрд╕реЗ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдФрд░ рд▓рд╛рдЧреВ рд╣реБрдЖред рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓ pyTelegramBotAPI (
github ) рдерд╛ред
рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реБрдЖ, рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдкрдврд╝реЗрдВред рджреЛ рд╣рд┐рд╕реНрд╕реЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
2. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмреЙрдЯ рдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯред рдореВрд▓ рдЦреЛрдЬ
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдФрд░
рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓рдЧрднрдЧ рд╕рднреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛрдб рддреИрдпрд╛рд░ рдереЗред рдпрд╣ рдЦреЛрдЬ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рд╛ред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдмреЙрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрдорд╛рдВрдб рдирд┐рдореНрди рд╕реЗрдЯ рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВ:
- / рдЦреЛрдЬреЗрдВ - рдПрдХ рдирдИ рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░реЗрдВ,
- / рд░реАрд╕реЗрдЯ - рдЦреЛрдЬ рдкреИрд░рд╛рдореАрдЯрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ,
- / рдЕрдВрддрд┐рдо рдЦреЛрдЬ - рдЕрдВрддрд┐рдо рдХреНрд╡реЗрд░реА рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ ,
- / addURL рдХреАрдорддреЛрдВ рдореЗрдВ рдХрдореА рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд┐рддреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди URL рдЬреЛрдбрд╝реЗрдВ,
- / checkurl - рдмреНрдпрд╛рдЬ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдореВрд▓реНрдп,
- / showurL - рд╕рднреА URL рдХреЛ рд░реБрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
рдореВрд▓ рдЦреЛрдЬ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
/ рдЦреЛрдЬ рдХреЗ рдЕрдиреБрд╕рд╛рд░
, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж - рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рд╕реНрдерд╛рди - рдкреЛрд╕реНрдЯрд░ рдХреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдШреЛрд╖рд┐рдд рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреБрдВрдЬреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рд╣реИ, рдорд╛рди рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдЦреЛрдЬ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗрджрд┐рд╕ рдореЙрдбреНрдпреВрд▓ (рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди,
рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВ) рдФрд░ рдПрдирдо (рдЧрдгрдирд╛, рд╡рд┐рд╡рд░рдг
1 ,
2 рдХреЗ рд╕рд╛рде рдХрд╛рдо) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ Myconfig.py рдореЗрдВ, рд╣рдо рдмреЙрдЯ рдкреИрд░рд╛рдореАрдЯрд░ (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЕрджреНрд╡рд┐рддреАрдп рдЯреЛрдХрди рд╕рд╣рд┐рдд) рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрджрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдереЛрдбрд╝рд╛ рдмрд╛рд╣рд░ рдЖрдПред
from enum import Enum token = "4225555:AAGmfghjuGOI4sdfsdfs5656sdfsdf_c"
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд╕рдВрдХреНрд░рдордг рдХреА рд╕реАрдзреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдорд┐рд▓рддреА рд╣реИред

рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо Vedis рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рд╣рдореЗрд╢рд╛ message.chat.id рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Dbwoker.py рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдХреЛрдб, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ from vedis import Vedis import Myconfig as config
рдиреАрдЪреЗ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ / рдЦреЛрдЬ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд░рд┐рдп рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реИ - рдХреЗрд╡рд▓ "S_ENTER_MONTH" рд╕реНрдерд┐рддрд┐ рдХрд╛ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдкрд░ рд╕рдВрджреЗрд╢ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред рд╕реНрдерд┐рддрд┐ S_ENTER_MONTH рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рдЕрдЧрд▓рд╛ рдХрджрдо рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИред
рдпрджрд┐ рдмреЙрдЯ рдХреЛ S_ENTER_MONTH рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрди рд╣реИрдВрдбрд▓рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдЖрдзрд╛рд░ рдЦреЛрдЬ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреНрдп рдЪрд░рдгреЛрдВ рдореЗрдВ рднреА рд╣реЛрддрд╛ рд╣реИред
@bot.message_handler(func=lambda message: dbworker.get_current_state(message.chat.id) == config.States.S_ENTER_MONTH.value) def user_entering_month(message): if not message.text.isdigit(): bot.send_message(message.chat.id, ", ") return # 1 num[message.chat.id]=message.text # if int(num[message.chat.id])>12 or int(num[message.chat.id])<1: bot.send_message(message.chat.id, " 1 12. ") # 2 return url_list[message.chat.id]=take_url(num[message.chat.id]) # URL- if url_list[message.chat.id]==[]: # bot.send_message(message.chat.id, " , . ") return bot.send_message(message.chat.id, "! .") dbworker.set_state(message.chat.id, config.States.S_ENTER_PRICE.value) #
рдорд╛рдирдХ рдЦреЛрдЬ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИред
3. рдЯреНрд░реИрдХрд┐рдВрдЧ рдореВрд▓реНрдп рдкрд░рд┐рд╡рд░реНрддрди
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореВрд▓реНрдп рдбреНрд░реЙрдк рд╣реЛрдиреЗ рдкрд░ рдЕрд▓рд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ URL рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдмреБрдирд┐рдпрд╛рджреА рдЦреЛрдЬ - S_ENTER_URL рдореЗрдВ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд╕реВрдЪреАрдмрджреНрдз рд╕реНрдерд┐рддрд┐ рдереАред
@bot.message_handler(commands=["addURL"]) def cmd_add_url(message): bot.send_message(message.chat.id, " url, . https://") dbworker.set_state(message.chat.id, config.States.S_ENTER_URL.value) # @bot.message_handler(func=lambda message: dbworker.get_current_state(message.chat.id) == config.States.S_ENTER_URL.value) def user_entering_URL(message): perf_url=message.text user_id=message.chat.id try: add_new_URL(user_id,perf_url) bot.send_message(message.chat.id, ' !') dbworker.set_state(message.chat.id, config.States.S_START.value) # except: bot.send_message(message.chat.id, 'URL ! !') dbworker.set_state(message.chat.id, config.States.S_ENTER_URL.value)
рд╕реВрдЪреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .csv рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдореВрд▓реНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрдирд╛ рдФрд░ рдкрдврд╝рдирд╛ред рдпрджрд┐ рдпрд╣ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред
def add_new_URL(user_id,perf_url): WAITING_FILE = "waiting_list.csv" with open(WAITING_FILE, "a", newline="") as file: curent_url='https://'+perf_url text=get_text(curent_url)
рдореВрд▓реНрдп рдЕрджреНрдпрддрди рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рд╣реИ def update_prices(bot): WAITING_FILE = "waiting_list.csv" with open(WAITING_FILE, "r", newline="") as file: reader = csv.reader(file) waitingList=[] for row in reader: waitingList.append(list(row)) L=len(waitingList) lowest={} with open(WAITING_FILE, "w", newline="") as fl: writer = csv.writer(fl) for i in range(L): lowest[waitingList[i][1]]=waitingList[i][2]
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрдорд╛рдВрдб
/ рдЪреЗрдХреБрд░рд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЕрдм рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдирд╛рдо рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпреЗ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдЪреАрдЬреЗрдВ "рд╣рд╛рдереЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреА" рд╣реИрдВ)ред

рдареАрдХ рд╣реИ, рдареАрдХ рд╣реИред рд╣рдо рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рджреЛрд╕реНрддреЛрдВ рдиреЗ рдмреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╡реЗ рдХреМрди рд╣реИрдВ рдФрд░ рд╡реЗ рдХреНрдпрд╛ рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд▓реЙрдЧ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред
4. рд╣рдо рд▓реЙрдЧ рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
рд▓реЙрдЧрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рдореВрд▓ рдЦреЛрдЬ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рджрд░реНрдЬ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд┐рддрд┐ S_ENTER_PLACE рд╕реЗ S_START рддрдХ рдЬрд╛рддреА рд╣реИред рддреНрд░реБрдЯрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ, рдмрджрд▓реЗ рдореЗрдВ, рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
рдмрд╛рд╣рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╡рд┐рд╡рд░рдг def save_logs(str): loggerInfo.info(str)
рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдХрдиреЗрдХреНрд╢рди рдХреЗ рдХрд╛рд░рдг, рдмреЙрдЯ рд╕рдордп-рд╕рдордп рдкрд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рддреНрд░реБрдЯрд┐ рдкрдХрдбрд╝реА рдЧрдИ рдФрд░ 10 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдмреЙрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ рдмрдЪрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЯреАрдорд╡реНрдпреВрдЕрд░ рдХреЛ рдЪрд╛рд▓реВ рд░рдЦрд╛, рддрд╛рдХрд┐ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЗрд╕реЗ рдмрдврд╝рд╛ рд╕рдХреЗред
5. рдЕрдирд╛рд░рдХреНрд╖рд┐рдд
рд╣рдореЗрдВ рдПрдХ рдмреЙрдЯ рдорд┐рд▓рд╛ рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдореИрд╕реЗрдВрдЬрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрд╕рдиреЗ рдореЗрд░реА рдмреБрдирд┐рдпрд╛рджреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред
рдореЙрдбреНрдпреВрд▓ рдФрд░ рд░рд╛рдЗрдЯрд┐рдВрдЧ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХреНрд░реИрдХреНрд╢рди рд╡реАрдХреЗрдВрдб рдкрд░ рдФрд░ рдХрднреА-рдХрднреА рд╢рд╛рдо рдХреЛ рдХрд╛рдо рдХреЗ рдореЛрдб рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рддрдХ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдмреНрдпрд╛рдЬ рдлреАрдХрд╛ рдкрдбрд╝рдиреЗ рд▓рдЧрд╛ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдкрд░ рдЕрдЯрдХ рдЧрдИред Webhook-ahs рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рдФрд░ рдлрд┐рд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдмреИрдХ-рдПрдВрдб рдЦреАрдВрдЪрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдереА, рд▓реЗрдХрд┐рди ... рд╡реАрдкреАрдПрди рдХреЛ рдЗрд╕ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ =)
рдпрд╣рд╛рдБ рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдПрдХ рдмрд╛рд░ рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ / рд╕рд░реНрджрд┐рдпреЛрдВ рдХреА рд╢рд╛рдо рдХреЛ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдкрд░реАрдХреНрд╖рдгред рдпрд╣ рдЕрднреА рддрдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмреЙрдЯ рджреГрдврд╝рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛;
- рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рдирдП рдкреНрд░рджрд░реНрд╢рди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕реВрдЪрдирд╛ рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдкрд╕рдВрджреАрджрд╛ "рд╕рдлреЗрдж рдЦрд░рдЧреЛрд╢" рд╣реИрдВ, рдореИрдВ рд╣рд░ рдХрд┐рд╕реА рдкрд░ рдирдЬрд╝рд░ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ (рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛);
- рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢реНрд░реЗрдгреА рдХреЗ рдЯрд┐рдХрдЯреЛрдВ рдХреА рдмрд┐рдХреНрд░реА рдкрд░ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ред рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдерд╛, рд╕реНрдЯрд╛рд▓реЛрдВ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╢реМрдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрдХрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛;
- рдЯрд╛рдЗрдорд░ рджреНрд╡рд╛рд░рд╛ рдореВрд▓реНрдп рдореЗрдВ рдХрдореА рдХреЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреА рдпреВрдЖрд░рдПрд▓ рдХреА рдирд┐рдпрдорд┐рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬрд╛рдБрдЪред рдЕрдм рдпрд╣ рдХрдорд╛рдВрдб рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЯрд╛рдЗрдорд░ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
- рдкреНрд░рджрд░реНрд╢рдиреЛрдВ рдХреА рдпрд╛рддреНрд░рд╛рдУрдВ рдХреЗ рдЕрдкрдиреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рд╕рдВрд░рдХреНрд╖рдгред рдХрд╣реАрдВ .csv рдлрд╝рд╛рдЗрд▓, рджрд┐рдирд╛рдВрдХ-рдирд╛рдо-рд░реЗрдЦрд╛-рдЕрдк-рдСрдл-рдЖрд░реНрдЯрд┐рд╕реНрдЯ-рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рддрд╛рдХрд┐ рдЦреЛрдирд╛ рди рд╣реЛ;
- рдЯрд┐рдХрдЯ рдХреА рдПрдХ рд╢реНрд░реЗрдгреА рдХреЗ рд▓рд┐рдП рдЦреЛрдЬред рди рдХреЗрд╡рд▓ рдХреАрдордд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рд╕реЗрдХреНрдЯрд░ (рднреВрддрд▓, рдЖрджрд┐) рднреА;
- рдРрд▓рд┐рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреМрд╢рд▓ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдирд╛рдВрддрд░рдгред рдХреНрдпреЛрдВ рдирд╣реАрдВ?
- рдПрдХ рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВред рдХреНрдпреЛрдВ рдирд╣реАрдВ?
рдмреЛрд▓реНрд╢реЛрдИ рдерд┐рдПрдЯрд░ рдореЗрдВ рдПрдХ рдХреЙрд▓ рдЖрдпрд╛ред рдиреВрд░реНрдпреЗрд╡ рдХреЗ рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ рджреЛ рд╢рд╛рдореЛрдВ рдореЗрдВ html рдкреЛрд╕реНрдЯрд░ рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдлреИрд╕рд▓реЗ
рдЖрд▓рд╕реНрдп рдкреНрд░рдЧрддрд┐ рдХрд╛ рдЗрдВрдЬрди рдерд╛, рдФрд░ рдЗрд╕рдиреЗ рдЙрд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ред рдмреЙрдЯ рдХреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рдЖрдИрдВ, рдлрд┐рд░ рднреА, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рджрдХреНрд╖рддрд╛рдУрдВ рдФрд░ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдмрди рдЧрдИ рдФрд░ рд╣рдореЗрдВ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдкрд╛рдпрдерди рд╕реАрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЗрд╕рдХреЗ рдПрдХ рдФрд░ рдкрд╣рд▓реВ рдХреЛ рджреЗрдЦреЗрдВ (рд╕рд╛рдорд╛рдиреНрдп рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛), рдФрд░ рдПрдХ рд╕реМрджреЗрдмрд╛рдЬреА рдХреАрдордд рдкрд░ рдерд┐рдПрдЯрд░ рдореЗрдВ рдХрдИ рдЕрджреНрднреБрдд рд╢рд╛рдореЗрдВ рднреА рдкреНрд░рд╕реНрддреБрдд рдХреАрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдзрдиреНрдпрд╡рд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред
рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреИрд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдЦ рдХреЛ рдЕрднреА рднреА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдФрд░ рдереЛрдбрд╝рд╛ рдкрд╛рда рдорд┐рд▓рд╛ред рдореБрдЭреЗ рдХрдореЗрдВрдЯ рдореЗрдВ рдмрддрд╛рдИ рдЧрдИ рдЕрд╕рдВрдЧрдд рдпрд╛ рдХрдо рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА =)