рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рддреНрд╡рд░рд┐рдд рдХреБрдВрдЬреА рд╕рдВрдХреЗрддрдХ

рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдРрд╕реА рд╕рд╛рдЗрдЯреЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдЬреЛ рдЪреМрдХрд╕ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдХреБрдЫ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдирдпрд╛ рд▓реЗрдЦ рдпрд╛ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрддрдиреЗ рдкрд░ред рд╕рд╛рдЗрдЯреЗрдВ рдЕрдХреНрд╕рд░ рдРрд╕реА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП rss рдпрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

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

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

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

1. рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЕрдиреБрд░реЛрдзред



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

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

var pageURL = "http://en.wikipedia.org/wiki/Main_Page"; var keyElementXPath = "/html/body//div[@id='articlecount']"; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgMain = "data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAEAgQAhIOEAMjHyABIR0gA6ejpAGlqaQCpqKkAKCgoAPz9/AAZGBkAmJiYANjZ2ABXWFcAent6ALm6uQA8OjwAiIiIiIiIiIiIiI4oiL6IiIiIgzuIV4iIiIhndo53KIiIiB/WvXoYiIiIfEZfWBSIiIEGi/foqoiIgzuL84i9iIjpGIoMiEHoiMkos3FojmiLlUipYliEWIF+iDe0GoRa7D6GPbjcu1yIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; var btn = this; function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { btn.image = imgMain; processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { btn.image = imgMain; processDoc((new DOMParser()).parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgMain; alert("Timeout"); } } xhr.onerror = function() { btn.image = imgMain; alert("HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { alert(keyElement.textContent); } else { alert("Parsing error"); } } getDoc(pageURL, true); 


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

рдмрдЯрди рдХреЛрдб рдХреЛ рдирдП рдлрд╝рдВрдХреНрд╢рди () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рдЦреБрдж рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╡реИрд░рд┐рдПрдмрд▓ рд╡реЗ рд╡реИрд░рд┐рдПрдмрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкрд╣рд▓рд╛ рдкреГрд╖реНрда рдХрд╛ рдкрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдореБрдЦреНрдп рддрддреНрд╡ рдХрд╛ XPath рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдо рджреЛ рдПрдореНрдмреЗрдбреЗрдб рдЪрд┐рддреНрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ: рдкрд╣рд▓рд╛ рд╡рд╣ рдкрд▓реНрд╕рд░ рд╣реИ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХреЗ рджреМрд░рд╛рди рдмрдЯрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ (рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ), рджреВрд╕рд░рд╛ рд╡рд╣ рд╕рд╛рдЗрдЯ рдЖрдЗрдХрди рд╣реИ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдВрдд рдореЗрдВ рдмрдЯрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ (рдПрдХ рд╣реА рдЖрдЗрдХрди рдмрдирд╛рдПрдБ рд╕рдВрд╡рд╛рдж рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдЯрди рдЖрдЗрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рдПрдХреНрд╕рдкреАрде рдХреБрдВрдЬреА рддрддреНрд╡ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ
XPather : рдпрд╣ рди рдХреЗрд╡рд▓ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ DOM рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреГрд╖реНрда рдкрд░ рдореМрдЬреВрдж рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЛ рдЗрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЙрд╕рдХрд╛ XPath рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХреЗред рд╡рд┐рд╕реНрддрд╛рд░ рд╕рднреА рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдкрддрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдЗрд╕реЗ рдирд┐рд░реНрднрд░ рдХрд░рдХреЗ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрддреНрд╡реЛрдВ рдХреА рдЖрдИрдбреА рдкрд░ред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдХреЗрд╡рд▓ рдкрддреЗ рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛ (рдмреЗрд╢рдХ, рдЬрдм рдореБрдЦреНрдп рддрддреНрд╡ рдореЗрдВ рдПрдХ рдЖрдИрдбреА рд╣реИ, рддреЛ рдЖрдк XPath рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рдХреЛрдб рдХреА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХрддрд╛ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдПрдХ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ)ред

XPath рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ XHR рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЛрдб рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдХреНрд╖рдо рдпрд╛ рдкреНрд░рд╛рдердорд┐рдХ HTML рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрддреНрд╡ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдмрдирддрд╛ рд╣реИ: рдлрд┐рд░ рд╣рдорд╛рд░реА рд╡рд┐рдзрд┐ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рдкреГрд╖реНрдарднреВрдорд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реЗ рдорд╛рдорд▓реЗ рдЗрддрдиреЗ рд▓рдЧрд╛рддрд╛рд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдмрдЯрди рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдВрдбреЛ рдореЗрдВ рдбреЗрдЯрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИ: -рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП -ddresses, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЖрдЗрдХрди рдкрддреЗ рдХреЛ6464 рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХреБрдЫ рднреА рдЖрдкрдХреЛ URL рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдмрд╕ рдЗрд╕ рддрд░рд╣ рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд╛рдпрддреНрдд рдХреЛрдб рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред

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

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

рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рддреБрд░рдВрдд DOM рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП xhr.responseType = "document" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЖрдк рд╢рд░реНрддреЛрдВ рдХреЗ рдПрдХ рдЕрд╕реАрдо рд╕рдВрдЧрдо рдХреЗ рдХрд╛рд░рдг рддреНрд░реБрдЯрд┐ рдореЗрдВ рднрд╛рдЧ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЫрджреНрдо рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ( рдмрдЧрдЬрд╝рд┐рд▓рд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ )ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕реБрд░рдХреНрд╖рд╛ рдХреЛрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ, рд╣рдо рдкреГрд╖реНрда рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ DOMParser рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рдмреЗрдХрд╛рд░ рд╣реИ ( DOMParser рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓реЛрдб рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдХреЛрдб рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рд░рд╛рдд рдХреЗ рд▓рд┐рдП рддрдпред рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдлрд┐рдХреНрд╕ 14 рд╡реЗрдВ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛), рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ рдЬрдм рддрдХ xhr.responseType = "рджрд╕реНрддрд╛рд╡реЗрдЬрд╝" рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ (16 рд╡реАрдВ рд░рд┐рд▓реАрдЬрд╝ рддрдХ) рддрдп рд╣реЛ рдЧрдИ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рдХрдИ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ: DOM рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рд░рд╕реАрдж рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рд╕рдлрд▓ рдХреЙрд▓ (рддрд░реНрдХ рдХреЗ рд╕рд╛рде purXHR == рд╕рддреНрдп) рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЙрд▓ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓рд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреНрд▓реАрди рдХреЛрдб рдХреЗ рдкреБрди: рдЕрдиреБрд░реЛрдз (рддрд░реНрдХ purXHR == рдЧрд▓рдд рдХреЗ рд╕рд╛рде) рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж рд╣реЛрддрд╛ рд╣реИред DOM рдореЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдлрдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ, рдПрдХ рджреВрд╕рд░реА рдЯрд╛рдЗрдордЖрдЙрдЯ рдпрд╛ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдПрд░рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдлрд▓рддрд╛ рд╕рдВрджреЗрд╢ рдЬрд╛рддрд╛ рд╣реИред

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

рдпрд╣ рдПрдХ рддреНрд░рд┐рднреБрдЬ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреА 50 рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИред рдЕрдм рдЪрд▓реЛ рд╕рд╛рдзрди рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдореГрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

2. рдЯрд╛рдЗрдорд░ рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдЪрд╛рд░ рд╕рдВрдХреЗрддрдХред



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

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

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

 var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); gif; рдмреЗрд╕ 64, R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv /////////////////////////////// YH / C05FVFNDQVBFMi4wAwEAAAAh + QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk / var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); QQBCgAPACwAAAAAEAAQAAAESPDJ + YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk / J8LqUPg + FRhV6z2q0VF94iJ9pOBAAh + QQBCgAPACwAAAAAEAAQAAAESPDJ + cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk / J8LqWPw + FRhV6z2q0VF94iJ9pOBAAh + QQBCgAPACwAAAAAEAAQAAAESPDJ + QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk / J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh + QQBCgAPACwAAAAAEAAQAAAESPDJ + UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk / J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh + QQBCgAPACwAAAAAEAAQAAAESPDJ + YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk / J8LqUPgeBRhV6 var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); ; var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); gif; рдмреЗрд╕ 64, R0lGODlhEAAQAOZAAPv / ++ Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj / cwAQ + G1pbc3JzZOXk / Xx9TriACAs7zs / O9PX03t / рдИ / P38 / 8HPP + rvk1JTY2JjbWxtVNXU / + XriAkUNnb / рд╡реЗрд╕ // 8zWVn / GwkV / wAMoGNnY / 8LRf8TSUtPS / var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); рдПрдХреНрд╕ / + LpsvPy3T / QwAIYIWBhZGY // 9HcQAM4DE9 / xkq / 3VxdQAOuKuvq6Gk / 9R / w1Fd ///// wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw == "; var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); gif; рдмреЗрд╕ 64, R0lGODlhEAAQANU1AP39 / erq6pOTk5 + fn + Xl5eTk5N7e3vHx8bu7u7q6ut / f36KiotjY2LS0tPDw8JycnK + vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9 / рдЪ + jo6KmpqbKystPT05aWlmlpab29vaurq8 / Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P /// wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); gif; рдмреЗрд╕ 64, R0lGODlhEAAQANU6AP98fP + рдЕрдЧрдк / m5v / EXP + 2tv + cnP9ycv / k5P8rK / 88PP8CAv9AQP / v75MAAP9HR // y8v8uLv8QELUAAP + рдЯреА / 9OTnQAAP89Pf + xsf81Nf + рдЯреАрдЖрд░рдПрдл / V1f9sbP9YWP9RUf + рд▓реА / 96ev + Ojv / l5f9ubsAAAP9lZf var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); / BWF / Q0P8MDP / Y2P / var pageURL = "http://pm.rutracker.org/forum/privmsg.php?folder=inbox"; var keyElementXPath = "/html/body/div[@id='body_container']/div[@id='page_container']/div[@id='page_header']/div[@id='main-nav']/table/tbody/tr/td[2]/a"; var delay = 10 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/gif;base64,R0lGODlhEAAQAOZAAPv/++Xh5THeANvf293Z3dXR1f4AOuvv66Ono6WhpZ2Zne3p7Zj/cwAQ+G1pbc3JzZOXk/Xx9TriACAs7zs/O9PX03t/e/P38/8HPP+rvk1JTY2JjbWxtVNXU/+XriAkUNnb/wES//8zWVn/GwkV/wAMoGNnY/8LRf8TSUtPS/9/nkf/C/8fUn7/S0RQ44T/X/+LpsvPy3T/QwAIYIWBhZGY//9HcQAM4DE9/xkq/3VxdQAOuKuvq6Gk/9r/w1Fd/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEAALAAAAAAQABAAAAezgECCg4IVC4SIgwcAAEABB4mEFTA2jAADAYkDBxcsBgYYABYEiAEADyKfBhkaCpErBxAYBigqEIQEDC8yAgAIJxkAHgMchAACAhICLQAKFCYFCAOCpsoCDAAOMzsTLgUJggMAIwy9FB8lNw0934ILEQg8PtkTDQ0hAB0Pgt8KEDQRNAwgkeNHjQAFBB0gEIAAAiAbAuAAYalYIgIEClxI4UCHhUiDYmxIwDDAIZABHkxDFAgAOw=="; var imgNoNews = "data:image/gif;base64,R0lGODlhEAAQANU1AP39/erq6pOTk5+fn+Xl5eTk5N7e3vHx8bu7u7q6ut/f36KiotjY2LS0tPDw8JycnK+vr5CQkKioqMrKym1tbfb29pSUlJ2dnaOjo3d3d6Wlpff398bGxoSEhH9/f+jo6KmpqbKystPT05aWlmlpab29vaurq8/Pz7i4uKamprGxsYuLi66urnt7e9bW1sPDw8HBwXl5ednZ2WNjY9zc3P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAQABAAAAajwJpwKFQ4iMjhAQCoBQ5JokKUYAIIgSThsDENBgvApYAMABih70CRaUQxB8hikDpBiIXJCyUAIDAKZwQcRAACAhYCCAANFCsGCARCZokCEwARMx0aLAYJQgQAIBN9FCQtAg80nkIOFQgwH5gaDw8DAB4MQp4NchUZBAsSJS4BBkIHBQEFCDUSASpLTIRJBQUGGzERIxdRQzISCcoBR94BDJJIQQA7"; var imgErrorOrTimeout = "data:image/gif;base64,R0lGODlhEAAQANU6AP98fP+AgP/m5v/ExP+2tv+cnP9ycv/k5P8rK/88PP8CAv9AQP/v75MAAP9HR//y8v8uLv8QELUAAP+Tk/9OTnQAAP89Pf+xsf81Nf+trf/V1f9sbP9YWP9RUf+Li/96ev+Ojv/l5f9ubsAAAP9lZf+EhNwAAPMAAP+5uf+lpbkAAP8WFv+9vf9KSv8NDc0AAIYAAP9UVP8yMv/Bwf/Q0P8MDP/Y2P/9/f9mZv/MzP///wAAAAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAQABAAAAajQJ1wKBwciMih4HbT2QRJ4iADYN5otiRN8ODIZIkbJIe03Qiir2wgMUQXAlxC1krhiLkC6FO7BRYDZzQTRDc1NRE1ATcGDSczATRCZok1BTcKFSYOJDMAQjQ3MQV9DTAjLggsnkIHDAEeGpgOCAgYNy8EQp4GcgwSNBYdJRc2M0ICOTY5AToUNhshVoRJOTkzDyoKKxBRQygUAMo2R942BJJIQQA7"; var btn = this; var parser = new DOMParser(); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { if (keyElement.className.indexOf("new-pm-link") > -1) { btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News"); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news"); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Authentication or parsing error"); } } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); 


рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬреЛрдбрд╝реА рдореЗрдВ рджреЛ рдФрд░ рдЬреЛрдбрд╝реЗ рдЧрдП: рджреЗрд░реА (рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдФрд░ рдкрд╣рд▓реЗ рдЯрд╛рдЗрдорд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдмреАрдЪ рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛) рдФрд░ рдЕрдВрддрд░рд╛рд▓ (рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдЖрдЧреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░рд╛рд▓)ред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдХреНрд░рдорд╢рдГ рджрд╕ рд╕реЗрдХрдВрдб рдФрд░ рдПрдХ рдШрдВрдЯрд╛ рд╣реИред

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЪрд╛рд░ рдкреВрд░реЗ рдЪрд┐рд╣реНрди рд╣реИрдВ: рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдПрдХ рд╕рдВрдХреЗрддрдХ, рд╕рдорд╛рдЪрд╛рд░ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рдВрдХреЗрддрдХ, рд╕рд╛рде рд╣реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдЗрдХрдиред

рд╣рдо DOMParser рд╕реБрд░рдХреНрд╖рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЪрд░ рднреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред

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

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ XHR рдкрд░рд┐рдгрд╛рдо рд╣реИрдВрдбрд▓рд░ рдЕрд▓рд░реНрдЯ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЗрдХрди рдФрд░ рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди (рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдореЗрдВ рдЕрдиреБрд░реЛрдз рд╕рдордп рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ)ред

рдпрджрд┐ рдирдП рд╕рдВрджреЗрд╢ рд╣реИрдВ, рддреЛ рд╕рд░реНрд╡рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдореБрдЦреНрдп рддрддреНрд╡ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдкреГрд╖реНрда рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдЗрдирдмреЙрдХреНрд╕ рдореЗрдВ рд▓рд┐рдВрдХ)ред рд╣рдо рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рдкрд░ рдПрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, XHR рдХреЛ рдПрдХ рдЦрд╛рд▓реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорд┐рд▓рддрд╛ рд╣реИ, рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ DOM рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдо рд╣реИред

рдЪрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд▓рдВрдмрд┐рдд рдЕрдиреБрд░реЛрдз рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЯрд╛рдЗрдорд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╡реИрд╕реЗ, рдХрд╕реНрдЯрдо рдмрдЯрди рдореЗрдВ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдмрдЧ рд╣реЛрддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рдСрдирдбреЗрд╕реНрдЯреНрд░реЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЯреВрд▓рдмрд╛рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рдЯреВрд▓ рдкреИрд▓реЗрдЯ рдХреЛ рдЦреЛрд▓рддреЗ рдФрд░ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ) рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

3. рдЯрд╛рдЗрдорд░ рд╕рдВрдХреЗрддрдХ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рдХреЗ рдмреАрдЪ рд░рд╛рдЬреНрдп рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд╕рд╛рде рд╕рдорд╛рдЪрд╛рд░ рд╕рдВрдХреЗрддрдХред



рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдЬ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЦрдмрд░ рд╣реИ: рд╕рд░реНрд╡рд░ рдиреЗ рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХреНрдпрд╛ рдкрдврд╝рд╛ рдерд╛ рдФрд░ рдХрд┐рд╕ рд╕рдордп рд╕реЗ рдЕрдкрдард┐рдд рд╕рдорд╛рдЪрд╛рд░реЛрдВ рдХреА рдЧрд┐рдирддреА рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рднреА рд╕рд╛рдЗрдЯреЛрдВ рдореЗрдВ рдРрд╕реЗ рд╕рдорд╛рдЪрд╛рд░ рд╕рдВрдХреЗрддрдХ рдирд╣реАрдВ рд╣реИрдВред

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

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

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

рдЕрдм рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

 var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); gif; рдмреЗрд╕ 64, R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv /////////////////////////////// YH / C05FVFNDQVBFMi4wAwEAAAAh + QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk / var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); QQBCgAPACwAAAAAEAAQAAAESPDJ + YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk / J8LqUPg + FRhV6z2q0VF94iJ9pOBAAh + QQBCgAPACwAAAAAEAAQAAAESPDJ + cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk / J8LqWPw + FRhV6z2q0VF94iJ9pOBAAh + QQBCgAPACwAAAAAEAAQAAAESPDJ + QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk / J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh + QQBCgAPACwAAAAAEAAQAAAESPDJ + UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk / J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh + QQBCgAPACwAAAAAEAAQAAAESPDJ + YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk / J8LqUPgeBRhV6 var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); ; var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); png, рдмреЗрд╕ 64, iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA + f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI / axRRFMXvve / NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF / Vth1dl1IMjtmd17ezFyLkQhq4 + 0u / A73nMsB + M9BAJBZ2XetL11OA / + LEEgWtVZb / iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N / UZe5Kzr5oVx5V / M8 + mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG / Dy1 / PZ8ezKPH4w7FyVelO6cyVu + D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN + ZUU6mmUg2FAs3zJiAAggT + FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n + 5SiqVdTyw var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); / a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw / iAaKtOh + 7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF / рдПрд▓ / fnAIYyDbro6Ua2AAAAAElFTkSuQmCC "; var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); png, рдмреЗрд╕ 64, iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA + f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK / aipREMbPnDNn / YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI / 3YXXNTsuntusVzhkupON / Ab5vu + рдЧреБрд▓ + s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA / C4fDT01OlUvFpAPA5vxV / y3XdTqfz / v6OuVwumUx2u935fI6IjDFEpJRSSq / DlNJsNlsqlTRNw1gsNh6Px + NxoVDIZrOMse / vb13XHx4erqoGg0E + n9 / v95IkUUqp4zjxeLxWq + 33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74 / H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4 + PmYymX6 / var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); + DwcB1Xbi5ualWq41GIxKJ / Pz8WJZ1Op0cx2GMBQIBRFRV9fn5 + XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20 + l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5 + 3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC "; var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); png, рдмреЗрд╕ 64, iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA + f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV + nSHyCJhyAMBGXNX2yoyIqJG26u6 + gqszUzzszuzPfbYVUKuvRuH3iP93mPB / CfQAAQFsXBeLwjHOb / YhCE6iidzuVWNM3nHEUk6UN // 4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI + nolGRkPlC4YdpPk0mr7 + aymbvx2IHhiFTiinGju + 3hkKP + / oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr + 65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq + nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8 + VleX399fj4xuQk7O9PpNMAwDivZWecAwCt + D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc / K5WPGxtmtSptb587ju66JccRMVZHR / Orq + 93d6nteQ2i6Pr + 5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk var pageURL = "http://www.nikse.dk/"; var keyElementXPath = "/html/body/table/tbody/tr/td[2]/table/tbody/tr[1]/td[3]/a"; var delay = 20 * 1000; var interval = 60 * 60000; var imgThrobber = "data:image/gif;base64,R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7"; var imgNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjalJI/axRRFMXvve/NzO7M7oaQNe5uig2aSExIiPgRFBttkhCihfkCYmNjY6NgYyWIlYWFVjFFIKRIHwNCMIkiZCF/Vth1dl1IMjtmd17ezFyLkQhq4+0u/A73nMsB+M9BAJBZ2XetL11OA/+LEEgWtVZb/iefI0aZk6PPR4uzRY4ZAJAw4ZIVGDhmYOCQdx7u1N/UZe5Kzr5oVx5V/M8+mYQSySQUCPRbjAKz49nCdKG12pJWwfI2PG/Dy1/PZ8ezKPH4w7FyVelO6cyVu+D2XO0J6oFIC0KBsYpTpVT5XjmoB8pVl55cQolzN+ZUU6mmUg2FAs3zJiAAggT+FQsQgloQtsP62zpZ1Ib26fdTjlkfaTTw7BpxxIAQfAsai42BuwNjL8dYM0qchMnCTKE4W8yMZFDgWR4ZBzEAyJwEhP1n+5SiqVdTyw+W12Ct+qKaPAoSmBOBjpGQLCrMFFIDKTKp0qlwzBMwsT69nnDuOzfxDAzCGXLsC7b30evsdYAh9MPmUjPqRNvedngchl6oDzUZNH9zfnN7s7nUlLGKhSNY80nlpFvtUorIJDKpvdW2Sla6nHaGnPJEeaWz0lptRSeR1EfaGXb6b/XrQ525nLGH7NxkbiQ3YoPtgXegDoJasPd+r/a65i64HDKa58zS7dLw42Gj14g6kT7S0Y8oVjFKFLZAAxuLjd2nu6xZexoYEADMvGn0GlbRGrw/iAaKtOh+7ba32v4Xv1vtqobiiDnkP1tLFiVfMvOmsAVKRIF/l/fnAIYyDbro6Ua2AAAAAElFTkSuQmCC"; var imgNoNews = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAI4SURBVHjalJK/aipREMbPnDNn/YMYdGWJgiLRIqWVhYqB1PoG1nkKX8E3ECysEtLZGUgKt14RQiAoKiKI/3YXXNTsuntusVzhkupON/Ab5vu+GUL+s4AQEgqFCoWCoihCiN8EpZRzrmnabDbzPA/C4fDT01OlUvFpAPA5vxV/y3XdTqfz/v6OuVwumUx2u935fI6IjDFEpJRSSq/DlNJsNlsqlTRNw1gsNh6Px+NxoVDIZrOMse/vb13XHx4erqoGg0E+n9/v95IkUUqp4zjxeLxWq+33e13XG40GY6xer5umaZqmYRiU0lgsBgAAgEII3xYA7Ha74/H48fHBObdt2zRNIYRlWYh43Yae5wGAruuqqj4+PmYymX6/zxhLJBLlcpkQ8vn5OZlMrn7Qtm1CSDgcBoDX11dJkprNZqvVWq1WvV7PD8qn/dzQdV0A4JyXy2VZlhFxu90KIWRZLpVKPqeqqq9ZCIH+nGEYLy8viqJwzkejkeM47XbbP4vneYqiFIvFr68vy7LQcZxgMHi5XJbL5Xq9liQJERFxOp3KsqwoSjKZvL+/n0wmmqadz2e0LCuVShWLxcPhkE6nU6nU3d3d7e0tItq2bRjGbrcbDodvb2+DwcB1Xbi5ualWq41GIxKJ/Pz8WJZ1Op0cx2GMBQIBRFRV9fn5+XK5HI9HIQQQQqLRaCQSicfj9XodESVJ2mw20+l0sVis12vDMDzPc13336cF4Jz7KUWj0UAgwBijlP5+3j8DAOp7HGipYoAdAAAAAElFTkSuQmCC"; var imgErrorOrTimeout = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJtSURBVHjalFLPSxRxHP18f8zMOuu67JCLm4m2omzMIthhQaxDXjwKHuzSRZEgQoigg9AtqINIV+nSHyCJhyAMBGXNX2yoyIqJG26u6+gqszUzzszuzPfbYVUKuvRuH3iP93mPB/CfQAAQFsXBeLwjHOb/YhCE6iidzuVWNM3nHEUk6UN//4PeXuAcAAChS2Lt5BwYA87B817Mzr7d2qL3YjFVUd7MzKyfnkqECBhLhBCECEL4SkwxTkWjI4nEdC5HbwWDi8XiYrE4GI+nolGRkPlC4YdpPk0mr7+aymbvx2IHhiFTiinGju+3hkKP+/oODCNvGGNDQwLGbcPDR5Z1ZFmHpkkQaqmvxwhhhCjjvBYLEPr+65fuuvL8fIAQsO2CaXKAkm1LhFy7UZ9zjFDeMD6trT3r6sKq+nluTsAYWloedncDQHpvL318DFcaeuF5ABCRJIzQ8+VleX399fj4xuQk7O9PpNMAwDivZWecAwCt+D4CCBDSn0q1hUISIZDPM86huXkkkQAADvBuZwdEESPEOCeqotyJRL5oWkHTGOc/K5WPGxtmtSptb587ju66JccRMVZHR/Orq+93d6nteQ2i6Pr+5tnZt3JZplQiRMR4WdNuNzR0hMOqopCeHshkpnM5o1qlZ46TVJRHnZ0nFxd3GxuTihJNJKC9HQQBbBs0DQ4PzxcWJjY3p7LZKmPoZjD4RFVfDgyAooBlga6DYfiVCqEUZBkEYSaTGVtacn1fd93LAppk+UYg0BoKvUqlJEJkSvfK5ZWTk6+l0q6uFyzLY6zK2F+TxAjVUVprqUmW6wVBwJhcD/EP/B4AKOgP3B2vzLEAAAAASUVORK5CYII="; var btn = this; var parser = new DOMParser(); var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var prefBranch = prefService.getBranch("cb_storage."); var supportsString = Components.interfaces.nsISupportsString; var uStr = Components.classes["@mozilla.org/supports-string;1"].createInstance(supportsString); function clickBtn(event) { if (event.button == 0) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); getDoc(pageURL, true); } else if (event.button == 1) { event.preventDefault(); window.clearInterval(checker); checker = window.setInterval(getDoc, interval, pageURL, true); var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); previousStat.isNew = false; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + previousStat.commentsInfo); if (gBrowser.selectedBrowser.currentURI.spec == "about:blank" && !gBrowser.selectedBrowser.webProgress.isLoadingDocument) { gBrowser.selectedBrowser.loadURI(pageURL); } else { gBrowser.selectedTab = gBrowser.addTab(pageURL); } } } function getDoc(pageURL, pureXHR) { btn.image = imgThrobber; var xhr = new XMLHttpRequest(); xhr.mozBackgroundRequest = true; xhr.open("GET", pageURL, true); xhr.timeout = 3000; xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal) .forceAllowThirdPartyCookie = true; if (pureXHR) { xhr.responseType = "document"; xhr.onload = function() { processDoc(this.responseXML); } xhr.ontimeout = function() { getDoc(pageURL, false); } } else { xhr.onload = function() { processDoc(parser.parseFromString(this.responseText, "text/html")); } xhr.ontimeout = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Timeout"); } } xhr.onerror = function() { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " HTTP error"); } xhr.send(null); } function processDoc(doc) { var keyElement = doc.evaluate(keyElementXPath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (keyElement) { var previousStat = JSON.parse(prefBranch.getComplexValue("Subtitle_Edit", supportsString).data); if (previousStat.pageURL != keyElement.href || previousStat.commentsInfo != keyElement.textContent || previousStat.isNew) { previousStat.pageURL = keyElement.href; previousStat.commentsInfo = keyElement.textContent; previousStat.isNew = true; uStr.data = JSON.stringify(previousStat); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); btn.image = imgNews; btn.tooltipText = ((new Date()).toLocaleString() + " News: " + keyElement.textContent); } else { btn.image = imgNoNews; btn.tooltipText = ((new Date()).toLocaleString() + " No news: " + keyElement.textContent); } } else { btn.image = imgErrorOrTimeout; btn.tooltipText = ((new Date()).toLocaleString() + " Parsing error"); } } if (!prefBranch.prefHasUserValue("Subtitle_Edit")) { uStr.data = JSON.stringify({"pageURL": "", "commentsInfo": "", "isNew": false}); prefBranch.setComplexValue("Subtitle_Edit", supportsString, uStr); prefService.savePrefFile(null); } btn.addEventListener("click", clickBtn, true); btn.onDestroy = function() { btn.removeEventListener("click", clickBtn, true); } window.setTimeout(getDoc, delay, pageURL, true); var checker = window.setInterval(getDoc, interval, pageURL, true); 


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд░ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ: рдпреЗ рд╕рднреА рд╕рддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреА рдмрдЪрдд рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рд╣рдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рд╣рдо рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ)ред рд╣рдордиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ (*** ComplexValue) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрд░реАрдХрд╛ рдЪреБрдирд╛ рд╣реИ, рддрд╛рдХрд┐ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЗрд╕реЗ рдпреВрдирд┐рдХреЛрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдЪрд╛рд░ рдзреНрд╡рдЬ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ (рдмрдЯрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдХреБрдВрдЬреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ JSON рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдзреНрд╡рдЬ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкреИрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ)ред

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

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

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

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

рдЗрд╕реЗ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдФрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдлрд▓ рдкреНрд░рдпреЛрдЧ)

Source: https://habr.com/ru/post/In146594/


All Articles