Gorp.NET рдореМрдЬреВрджрд╛ Salesforce Gorp рдХреЛрдб рдЖрдзрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрд░рдЪрд┐рдд рдкрд╛рда рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╡рд░реНрддреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИредрдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ, рдореИрдВ
Gorp рдирд╛рдордХ рд╕рдВрд░рдЪрд┐рдд рдкрд╛рда рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ (рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдХрднреА
- рдХрднреА
рд░рд┐рд╡рд░реНрд╕-рдЗрдВрдЬреАрдирд┐рдпрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ
рдкреНрд░рддрд┐рд╡рд░реНрддреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрдпрд╛ рд╣реИ? рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдкрд╛рда рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдЦреНрдд рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИред рдЕрдм рдПрдХ рдРрд╕реЗ рдХрд╛рд░реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬреЛ рдЕрд░реНрде рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд╛рда рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЕрдЦрдВрдбрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдЗрд╕ рдкрд╛рда рд╕реЗ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдкрд╛рд░реНрд╕рд░ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рд╣реИ, рдЬреЛ рдЗрдирдкреБрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрддреНрд╡реЛрдВ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рддрд┐рд╡рд░реНрддреА рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ
Gorp рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕, рдореВрд▓
рдЧреЙрд░реНрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд┐рдП рдЧрдП рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХреБрдЫ рд╡рд┐рд╡рд░рдгреЛрдВ рд╕рд╣рд┐рдд,
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдЗрдВрдЬрди рдХреЗ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрдХрдиреАрдХреА рднрд╛рдЧ рдкрд░ рд╕рдЯреАрдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ
Gorp.NET рдХрд╣рддрд╛ рд░рд╣реВрдВрдЧрд╛ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣
Gorp рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИред рдЬрд┐рд╕реЗ .NET рдореЗрдВ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХреЗрд╡рд▓ рдереЛрдбрд╝рд╛ рдкреЙрд▓рд┐рд╢ рдФрд░ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рд╕рднреА рдПрдХ рд╣реА рдЬрд╛рд╡рд╛ рдореЗрдВред рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐
Gorp рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдКрдкрд░ рдРрдб-рдСрди
рд╕реНрд╡рдпрдВ (рдореЗрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ) рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд DLL- рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд┐рд╕реЗ
BIRMA.NET рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖ рдЕрд╕реЗрдВрдмрд▓реА - рдмрд╣реБрдд рд╣реА
Gorp.NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрд╡рдпрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рд╕реНрд░реЛрдд рдкрд╛рда рдЪрд▓рд╛рддреЗ рд╣реИрдВ (
IKVM.NET рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдирдХреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдкрддрд╛
https://github.com/S-presso/gorp/ ) рд╣реИред
рдореИрдВ рдЕрднреА рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдВрд░рдЪрд┐рдд рдкрд╛рда рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП,
Gorp.NET рдЙрдкрдХрд░рдг рд╕реНрд╡рдпрдВ
рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗ - рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд╛рд╡рд╛ рдХреА рдереЛрдбрд╝реА рд╕реА рдХрдорд╛рдВрдб рд╣реИ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрд╛рд╣рд░реА рдЬрд╛рд╡рд╛ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред .NET рдлреНрд░реЗрдорд╡рд░реНрдХ, рд╕рд╛рде рд╣реА рд╡рд╣рд╛рдВ рдорд╛рдирдХ JVM рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдЙрд╕реА
IKVM.NET рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛, рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрд╕рдорд░реНрдерд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ)ред рдЦреИрд░, рдФрд░ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЖрдк рдЖрдЧреЗ рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ - рдпрд╣, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЖрдкрдХрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡реНрдпрд╡рд╕рд╛рдп рд╣реИред
Gorp рдФрд░
Gorp.NET рдЕрдХреЗрд▓реЗ рдХреЗрд╡рд▓ рдПрдХ рдирдВрдЧреЗ рдврд╛рдВрдЪреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЗ рдЖрдЧреЗ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧреНрд░рд╛рдЙрдВрдбрд╡рд░реНрдХ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд
BIRMA.NET рд╢рд╛рдорд┐рд▓ рд╣реИ ред рд▓реЗрдХрд┐рди
рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ
BIRMA.NET рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ,
BIRMA рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛рддреНрдордХ-рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рдХреБрдЫ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛)ред рдпрд╣рд╛рдВ, рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рдмреЛрд▓реНрдб рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреВрдВрдЧрд╛ рдХрд┐ рддрдХрдиреАрдХ
Gorp.NET (рдФрд░, рддрджрдиреБрд╕рд╛рд░,
BIRMA.NET рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░рддрд┐рд╡рд░реНрддреА рдЯреЗрдореНрдкреНрд▓реЗрдЯ) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреНрдп рд╢рд┐рд▓реНрдкреЛрдВ рдореЗрдВ рдХреБрдЫ рдЕрдиреВрдард╛ рд╣реИ (рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ " рд╢рд┐рд▓реНрдк ", рдЬреИрд╕рд╛ рдХрд┐ рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпреЛрдВ рдиреЗ рдЕрднреА рддрдХ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдореЗрдВ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЕрднреА рддрдХ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ - рдареАрдХ рд╣реИ, рд╢рд╛рдпрдж, рдХреЗрд╡рд▓
рд╕реЗрд▓реНрд╕рдлреЛрд░реНрд╕ рд╣реА рдЗрд╕рдХреЗ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде)ред
рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рддрдХрдиреАрдХреА рдкрд╣рд▓реБрдУрдВ рдХреЗ рд╕рдмрд╕реЗ рдкреВрд░реНрдг рдкреНрд░рдХрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд┐ Gorp рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд╡рд░рдг рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдЕрднреА рдпрд╣рд╛рдВ
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд╛ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝рддрд╛ рд╣реВрдВред рдЗрд╕рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк
Gorp.NET рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡реЗрджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рд╕рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрддрд╛рдКрдВрдЧрд╛ред
рддреЛ, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдПрдХ рддрд░рд╣ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╣реИ (рд╢рд╛рдпрдж рдЗрд╕реЗ рдПрдХ рдмрдбрд╝реА рд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдЗрд╕рдореЗрдВ рддреАрди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╡рд┐рд╡рд░рдг рд╡рд╛рд▓реЗ рддреАрди рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдкреИрдЯрд░реНрди ,
рдкреИрдЯрд░реНрди рдФрд░
рдирдореВрдиреЗ (рдЕрд░реНрдХ)ред
рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдмреНрд▓реЙрдХ
рдкреИрдЯрд░реНрди рд╣реИрдВ - рд╡реЗ рдХреЗрд╡рд▓ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рдЕрдиреНрдп рдкреИрдЯрд░реНрди рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдХреЛ
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ , рдЬрд┐рд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдкреИрдЯрд░реНрди рдХреЗ рд▓рд┐рдВрдХ рднреА рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдирд╛рдо рднреА рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдкрд╛рда рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рд╡реЗрд╢, рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдВрдХ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╡рд╣рд╛рдБ рднреА
рдкреИрд░рд╛рдореАрдЯреНрд░рд┐рдХ рдкреИрдЯрд░реНрди рд╣реИрдВ рдЬреЛ рдореИрдВ рдЕрднреА рдирд╣реАрдВ рдЫреВрдКрдВрдЧрд╛ (рд╕реНрд░реЛрдд рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ)ред рдЦреИрд░, рдФрд░ рдЕрдВрдд рдореЗрдВ, рдРрд╕реЗ
рдирдореВрдиреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд░реЛрдд рдкрд╛рда рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде
рдирд╛рдорд╛рдВрдХрд┐рдд рдкреИрдЯрд░реНрди рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ,
рдЧреЙрд░реНрдк рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореВрд▓ рд▓рдХреНрд╖реНрдп рд░рд┐рдкреЛрд░реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ (рдпрд╛ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ) рдореЗрдВ рдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛
рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ
рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдерд╛ред рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рд╡рд╛рд▓реА рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ:
<86> 2015-05-12T20: 57: 53.302858 + 00: 00 10.1.11.141 RealSource: "10.10.5.3"
рдЪрд▓рд┐рдП
Gorp рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рд░рдЪрдирд╛ рдХрд░рддреЗ рд╣реИрдВ:
pattern %phrase \\S+
pattern %num \\d+\n
pattern %ts %phrase
pattern %ip %phrase
extract interm {
template <%num>$eventTimeStamp(%ts) $logAgent(%ip) RealSource: "$logSrcIp(%ip)"
}
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдмреНрд▓реЙрдХ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд┐рдо рдЪрдпрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдирд╛рдорд┐рдд рд╣реИрдВ, рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЙрдирдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рдж рдХреЛрд╖реНрдардХ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирддреАрдЬрддрди,
рдИрд╡реЗрдВрдЯ рдбреЗрдЯрд╛
рдЯрд╛рдЗрдорд╕реНрдЯреИрдВрдк ,
logAgent рдФрд░
logSrcIp рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдм рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВрдЧреЗред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдЬреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдпрд╛ рд╣реИ, рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ
extractions.xtr рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ ред
import com.salesforce.gorp.DefinitionReader; import com.salesforce.gorp.ExtractionResult; import com.salesforce.gorp.Gorp;
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг:
# Patterns
pattern %num \d+
pattern %hostname [a-zA-Z0-9_\-\.]+
pattern %status \w+
# Templates
@endpoint $srcHost(%hostname): $srcPort(%num)
# Extraction
extract HostDefinition {
template @endpoint $status(%status)
}
рдЦреИрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐
рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рджреЛ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рднреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рдХрд╛рд░ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ
рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ
рд╣реИрдВ , рддреЛ, рдЬрдм рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдбреЗрдЯрд╛ рд╕реЗрдЯреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░реЗрдЧреА - рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ (рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛ -
рдЕрд░реНрдХ рдХреИрдлреЗ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЛ рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рдЧрд▓рдд рд╣реИ , рдФрд░ рд╡рд┐рдзрд┐ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмреАрдЪ рд╡рд┐рд╕рдВрдЧрддрд┐ рдкрд░ "рд╢рдкрде" рдХрд░ рд╕рдХрддреА рд╣реИред
рдореИрдВ рдЙрд╕реА рд╕рдордп рдкрд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐
Gorp.NET рдиреЗ рдЕрд░реНрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдПрдХ рдирдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рднреА рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИ: рдЕрдм рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рджреЛ рдмрд╛рдж рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
ExtractAllFound рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ
рд╣реБрдП , рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рджреЛрдиреЛрдВ рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╣рдореЗрдВ рд╡рд┐рд╡рд┐рдзрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдЕрдзрд┐рдХ рдЧреБрдВрдЬрд╛рдЗрд╢ рджреЗрддрд╛ рд╣реИ: рдЕрдм рд╕реЗ, рд╣рдо рд╡рд╛рдВрдЫрд┐рдд, рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдирдореВрдиреЛрдВ (рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд╕реЗрдЯ рд╕рд╣рд┐рдд) рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдордирдорд╛рдирд╛ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкрд╛рда рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рддреЛ, рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ: рдПрдХреНрд╕реНрдЯреНрд░реЗрдХреНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛,
Gorp рдХреЗ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЗрд╕ рд╕рдВрд╢реЛрдзрди рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдкрд╛рда рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрдирд╛ рдЙрдкрдХрд░рдг рдмрдирд╛рдпрд╛ рдерд╛ (рдЬреЛ рдХрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдЯреЗрдореНрдкрд░рд┐рдВрдЧ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛), рддреЛ рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред
Gorp рдФрд░ рд╕рднреА рд╡реНрдпреБрддреНрдкрдиреНрди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЙрдирдХрд╛ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рда рддрддреНрд╡ рдХреЛ рдмрд╕ рдЙрд╕рдХреА рдмрд╛рдИрдВ рдФрд░ рджрд╛рдИрдВ рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдпрд╛ рддреЛ рддрддреНрд╡ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдмрд╕ рдЗрд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рднреА рдмрд╛рдж рдпрд╛ рдкрд┐рдЫрд▓реЗ рдкрд╛рда)ред рдЙрд╕реА рд╕рдордп, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд░реЛрдд рдкрд╛рда рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╕реНрд╡рдпрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐
рдЧреЛрд░реНрдк рдореЗрдВ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрд▓рдЧреНрди рдкрд╛рда рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд┐рд╕реА рднреА рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдерд╛ (рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд░рд┐рддреНрд░ рд╕реЗрдЯ рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
рдХреНрдпрд╛
рдЧреЛрд░реЛ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдЗрд╕рдХреЗ рд╢реБрд░реБрдЖрддреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ - рд╢рд╛рдпрдж рдирд╣реАрдВ (рдореБрдЭреЗ рд╕рд╣реА рдХрд░реЗрдВ рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рд╣реВрдВ)ред рдпрджрд┐ рд╣рдо рдмрд╕
(ред *) рдХреА рддрд░рд╣ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЦреЛрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдХреА рдмрд╛рдИрдВ рд╕реАрдорд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдЦреМрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рддреБрд░рдВрдд рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ "рд▓рд╛рд▓рдЪ" рдХреНрд╡рд╛рдВрдЯрд┐рдлрд╛рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдкреВрд░реЗ рдмрд╛рдж рдХреЗ рдкрд╛рда рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рд╣рдо рдореМрдЬреВрджрд╛
Gorp рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ "рдЧреИрд░-рд▓рд╛рд▓рдЪреА" рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
Gorp.NET рдЖрдкрдХреЛ рджреЛ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрдЯрд░реНрди рдкреЗрд╢ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ -
(% all_before) рдФрд░
(% all_after) ред рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рдЧреИрд░-рд▓рд╛рд▓рдЪреА" рд╕рдВрд╕реНрдХрд░рдг
(ред *) рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдХреЗ рд░реВрдк рдореЗрдВ
(% all_after) , рдпрд╣ рднреА рд╡рд░реНрдгрд┐рдд рдкреИрдЯрд░реНрди рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдХреА рдкрд╣рд▓реА рдШрдЯрдирд╛ рддрдХ рд╕реНрд░реЛрдд рдкрд╛рда рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд┐рдЫрд▓реЗ рдкреИрдЯрд░реНрди рдХреЗ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдЙрдирдХреЗ рдмреАрдЪ рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рд╡рд╣ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡ рдХреЗ рдПрдХреНрд╕реНрдЯреНрд░реЗрдХреНрдЯреЗрдмрд▓ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдЕрд░реНрде рдореЗрдВ
(% all_after) "рд╡рд╛рдкрд╕ рджрд┐рдЦрддрд╛ рд╣реИ", рдФрд░
(% all_before) , рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, "рджрд┐рдЦрддрд╛ рд╣реИ"ред рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐
BIRMA рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ
(% all_before) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдПрдирд╛рд▓реЙрдЧ рддрддреНрд╡ рдХреЗ рд╡рд░реНрдгрди рдореЗрдВ рдЧрд╛рдпрдм рдмрд╛рдИрдВ рдУрд░ рдерд╛, рдФрд░ рдПрдирд╛рд▓реЙрдЧ
(% all_after) , рдХреНрд░рдорд╢рдГ, рд╕рд╣реА рд╕реАрдорд╛ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╢реВрдиреНрдп рдерд╛ред рдпрджрд┐ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп рджреЛрдиреЛрдВ рд╕реАрдорд╛рдПрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рдкрд╛рд░реНрд╕рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рднреА рдмрд╛рдж рдХреЗ рдкрд╛рда рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реИ! рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рдм рддрдм
BIRMA рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдорд╣рддреНрд╡ рд╣реИ (рдЖрдк
рдЙрд╕ рд╕рдордп рдХреА рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рдард╕реНрд░реЛрдд рдХреЛрдб рдХрднреА рднреА рдЙрдирдХреА рдЕрддреНрдпрдВрдд рдирд┐рдореНрди рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдХрд╛рд░рдг рдХрд╣реАрдВ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЦрд░рд╛рдм рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЗрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡рд╛ рдкреИрдЯрд░реНрди
(% all_before) рдФрд░
(% all_after) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВред рд╣рдо рдЕрдореЗрдЬрд╝рди рд╕рд╛рдЗрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ:
https://www.amazon.com/B06-Plus-Bluaxy-Receiver-Streaming/product-reviews/B078J3GTRK/ )ред
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рдардореЗрд░реА рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреА рд░рд┐рдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдорд╕реНрдпрд╛ рдХреЗ рдореЗрд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╕рдорд╛рдзрд╛рди рдХреА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛, рдФрд░ рдЬрд╡рд╛рдм рдореЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Gorp рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрдмрдХрд┐ рдЙрд╕ рд╕рдордп рдореЗрд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗрд╡рд▓ рдореМрдЬреВрдж рдереЗ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, "рдХрд╛рдЧрдЬ рдкрд░" "ред
рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЦреБрдж рдХреЛ рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдкрддреНрд░ рд╕реЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреВрдВрдЧрд╛, рдЬреЛ рдХрд┐, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░,
Gorp.NET рдХрд╛ рдкрд╣рд▓рд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рдЬреЛ рдПрдХ рдирд┐рдЬреА рдкреНрд░рдХреГрддрд┐ рдХрд╛ рд╣реИред
"рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рджреГрд╢реНрдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЙрдкрд░реЛрдХреНрдд рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ (рдЗрд╕реЗ рдкрддреНрд░ рд╕реЗ рдЬреБрдбрд╝рд╛), рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХреЛрдб
github.com/salesforce/gorp рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдФрд░ рдЙрд╕реА рдкреГрд╖реНрда рдкрд░ рдРрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг рд╣реИред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡рд░реНрдгрди рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдареЛрд╕ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рддрд░реНрдХ рджреЛрдиреЛрдВ рдХреЗ рдХрд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИред рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрди рдкрд╛рдареЛрдВ рдХреА рдкреВрд░реА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рди рдХрд┐ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдХреЗ рд░реВрдк рдореЗрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдЦреБрдж рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд▓реВрдк рдореЗрдВ рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд)
рдореВрд▓ рдХрд╛рд░реНрдп рдЙрдкрд░реЛрдХреНрдд рдкреГрд╖реНрда рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдерд╛:
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо
- рдореВрд▓реНрдпрд╛рдВрдХрди
- рд╢реАрд░реНрд╖рдХ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ
- рддрд╛рд░реАрдЦ
- рдЯреЗрдХреНрд╕реНрдЯ
рдареАрдХ рд╣реИ, рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рджреЗрддрд╛ рд╣реВрдБ, рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрде рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рд╢рд╛рдпрдж рдЖрдк рд╕реНрд╡рдпрдВ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдорд╛рдзрд╛рди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рдардпрд╣ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдерд╛ рдХрд┐, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ Gorp рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдбреАрдмрдЧ рдХрд┐рдпрд╛ (рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд░реЛрдЬрдЧрд╛рд░ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ "рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдкреНрд░рдорд╛рдг" рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд)ред
pattern %optspace ( *)
pattern %space ( +)
pattern %cap_letter [AZ]
pattern %small_letter [az]
pattern %letter (%cap_letter|%small_letter)
pattern %endofsentence (\.|\?|\!)+
pattern %delim (\.|\?|\!\,|\:|\;)
pattern %delim2 (\(|\)|\'|\")
pattern %word (%letter|\d)+
pattern %ext_word (%delim2)*%word(%delim)*(%delim2)*
pattern %text_phrase %optspace%ext_word(%space%ext_word)+
pattern %skipped_tags <([^>]+)>
pattern %sentence (%text_phrase|%skipped_tags)+(%endofsentence)?
pattern %start <div class=\"a-fixed-right-grid view-point\">
pattern %username_start <div class=\"a-profile-content\"><span class=\"a-profile-name\">
pattern %username [^\s]+
pattern %username_end </span>
pattern %user_mark_start <i data-hook=\"review-star-rating\"([^>]+)><span class=\"a-icon-alt\">
pattern %user_mark [^\s]+
pattern %user_mark_end ([^<]+)</span>
pattern %title_start data-hook=\"review-title\"([^>]+)>(%skipped_tags)*
pattern %title [^<]+
pattern %title_end </span>
pattern %span class <span class=\"[^\"]*\">
pattern %date_start <span data-hook="review-date"([^>]+)>
pattern %date ([^<]+)
pattern %date_end </span>
pattern %content_start <span data-hook=\"review-body\"([^>]+)>(%skipped_tags)*
pattern %content0 (%sentence)+
pattern %content (%all_after)
pattern %content_end </span>
template @extractUsernameStart (%all_before)%username_start
template @extractUsername $username(%username)%username_end
template @extractUserMarkStart (%all_before)%user_mark_start
template @extractUserMark $user_mark(%user_mark)%user_mark_end
template @extractTitleStart (%all_before)%title_start
template @extractTitle $title(%title)%title_end
template @extractDateStart (%all_before)%date_start
template @extractDate $date(%date)%date_end
template @extractContentStart (%all_before)%content_start
template @extractContent $content(%content)%content_end
extract ToCEntry {
template @extractUsernameStart@extractUsername@extractUserMarkStart@extractUserMark@extractTitleStart@extractTitle@extractDateStart@extractDate@extractContentStart@extractContent
}
рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рддреГрддреАрдп-рдкрдХреНрд╖ рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдврд╛рдВрдЪрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рд╕рдордп рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВред