VKontakte рдорд╛ рдкреЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХрд╛ рд▓рд┐рдЩреНрдХрд╣рд░реВрдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реЗрд░, рддрдкрд╛рдИрдВрд▓реЗ рдпрд╛рдж рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ рдХрд┐, рдЕрдиреНрдп рд╕рд╛рдорд╛рдЬрд┐рдХ рд╕рдЮреНрдЬрд╛рд▓рд╣рд░реВрдорд╛ рдЬрд╕реНрддреИ, рдкрд╣рд┐рд▓реЗ рддреНрдпрд╣рд╛рдБ "рд╕реБрд░рдХреНрд╖рд┐рдд" рд▓рд┐рдЩреНрдХрдорд╛ рдЯреНрд░рд╛рдиреНрдЬрд┐рд╕рди рдЫ, рдЬрд╕ рдкрдЫрд┐ рд╕рд╛рдорд╛рдЬрд┐рдХ рд╕рдЮреНрдЬрд╛рд▓рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдердк рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрдкрд░реНрдЫ рд╡рд╛ рдЫреИрди рднрдиреЗрд░ рдирд┐рд░реНрдгрдп рдЧрд░реНрджрдЫред рдзреЗрд░реИ рдзреНрдпрд╛рди рджрд┐рдПрд░ рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рдмреНрд░рд╛рдЙрдЬрд░рдХреЛ рдареЗрдЧрд╛рдирд╛ рдкрдЯреНрдЯреАрдорд╛ "vk.com/away.php" рдХреЛ рдЖрдзрд╛-рд╕реЗрдХреЗрдиреНрдб рдЙрдкрд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗ, рддрд░ рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпрд╕рд▓рд╛рдИ рдХреБрдиреИ рдорд╣рддреНрддреНрд╡ рджрд┐рдПрдиред
рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕
рдПрдХ рджрд┐рди, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдЕрд░реНрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреВрд░рд╛ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рдерд╛рд╣рд╛ рднрдпреЛ рдХрд┐ рдЙрдиреА рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдмреИрд▓рд╛рдИ рдмрддрд╛рдЙрди рдЪрд╛рд╣рдирд╛рдорд╛ рд╡реНрдпрд╛рдХреБрд▓ рдерд┐рдПред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп IP рд╕рдВрдЧ рд╕рд░реНрднрд░ рдорд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рддрд░ рдбреЛрдореЗрди рдирд╛рдо рдмрд┐рдирд╛ред рддреНрдпрд╕рдХрд╛рд░рдг, .ddns.net рдбреЛрдореЗрдирдорд╛ рдПрдХ рд╕реБрдиреНрджрд░ рддреЗрд╕реНрд░реЛ-рд╕реНрддрд░ рд╕рдмрдбреЛрдореЗрди рддреБрд░реБрдиреНрддреИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬреБрди рдЕрдиреНрддрддрдГ рд▓рд┐рдЩреНрдХрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред
рдХреЗрд╣реА рд╕рдордп рдкрдЫрд┐ рдкреЛрд╖реНрдЯрдорд╛ рдлрд░реНрдХреЗрд░, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреЛ рдХрд┐ рд╕рд╛рдЗрдЯрдХреЛ рд╕рдЯреНрдЯрд╛, рдПрдХ VK рд╕реНрдЯрдм рдЦреЛрд▓реНрджреИ рдерд┐рдпреЛ, рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рд╛рдЗрдЯрдорд╛ рд╕рдВрдХреНрд░рдордгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдБрджреИ:
рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЖрдлреВрд▓рд╛рдИ рдХреБрди рд╕рд╛рдЗрдЯрдорд╛ рдЬрд╛рдиреБрдкрд░реНрдЫ рд░ рдХреБрди рд╣реЛрдЗрди рднрдиреЗрд░ рдирд┐рд░реНрдгрдп рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рдЫ, рддрд░ VKontakte рдлрд░рдХ рд░реВрдкрдорд╛ рд╕реЛрдЪреНрджрдЫ рд░ рдмреИрд╕рд╛рдЦреА рдмрд┐рдирд╛ рд▓рд┐рдЩреНрдХ рдкрдЫреНрдпрд╛рдЙрдиреЗ рдХреБрдиреИ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИрдиред
рдХреЗ рдЧрд▓реНрддрд┐ рдЫ
рдпреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣рд╛рдирд┐рд╣рд░реВ рдЫрдиреН:
- рд╕рдВрджрд┐рдЧреНрдз рд╕рд╛рдЗрдЯ рдЦреЛрд▓реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ред рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕рдБрдЧ рд╕реНрдЯрдмрд▓рд╛рдИ рдкрд╛рд░ рдЧрд░реНрдиреЗ рдХреБрдиреИ рддрд░рд┐рдХрд╛ рдЫреИрдиред рд▓рд┐рдЩреНрдХ рдЦреЛрд▓реНрдиреЗ рдПрдХ рдорд╛рддреНрд░ рддрд░рд┐рдХрд╛ рдареЗрдЧрд╛рдирд╛ рдкрдЯреНрдЯреАрдорд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рдЯрд╛рдБрд╕реНрдиреБ рд╣реЛред
- рд▓рд┐рдЩреНрдХ рдиреЗрднрд┐рдЧреЗрд╕рди рдврд┐рд▓реЛ рдЧрд░реНрдЫред рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдЧрддрд┐ рдкрд┐рдВрдЧ рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред рддрджрдиреБрд╕рд╛рд░, рдЙрдЪреНрдЪ рдкрд┐рдВрдЧрдХреЛ рд╕рд╛рде, рдЬреАрд╡рдирдХреЛ рдмрд╣реБрдореВрд▓реНрдп рд╕реЗрдХреЗрдиреНрдбрд╣рд░реВ рд╣рд░рд╛рдЙрди рд╕рдХреНрдЫ, рдЬреБрди рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЫреИрдиред
- рд╕рдВрдХреНрд░рдордг рдирд┐рдЧрд░рд╛рдиреАред рдпреЛ рд╡рд┐рдзрд┐рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ, рдЬреБрди рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, VK рд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рд╕реБрд░рдХреНрд╖рд┐рдд рд▓рд┐рдЩреНрдХрдорд╛ рдкреЛрд╕реНрдЯрдХреЛ рдЖрдИрдбреА рдердкреНрджреИ рдЬрд╕рдмрд╛рдЯ рд╕рдВрдХреНрд░рдордг рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред
Django рдореБрдХреНрдд рдЧрд░реНрджреИ
рдорд╛рдерд┐рдХрд╛ рд╕рдмреИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди рдмреНрд░рд╛рдЙрдЬрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реБрди рд╕рдХреНрдЫред рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдЫрдиреЛрдЯ Chrome рдорд╛ рдкрд░реНрдЫред рд╣рдм рдорд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЫ
рдпрд╕реНрддреЛ рдПрдХреНрд╕реНрдЯреЗрдиреНрд╕рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдЫреБрдЯреНрдЯреИ рдлреЛрд▓реНрдбрд░рдорд╛ рджреБрдИ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ: рд╣рд╛рд▓рдХреЛ url рдареЗрдЧрд╛рдирд╛ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрди json-Manifest рд░ JavaScript рдлрд╛рдЗрд▓ред
Manifest рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд╣рд╛рдореАрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рдореБрдЦреНрдп рдХреБрд░рд╛ рднрдиреЗрдХреЛ рдЯреНрдпрд╛рдмрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреЛрдХреНрди рд╡рд┐рд╕реНрддрд╛рд░ рдЕрдиреБрдорддрд┐ рджрд┐рдиреБ рд╣реЛ:
{
"manifest_version": 2,
"name": "Run Away From vk.com/away",
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"permissions": ["tabs"],
"browser_action": {
"default_title": "Run Away From vk.com/away"
}
}
js рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдпрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ рд╕рд░рд▓ рдЫ: рдирдпрд╛рдБ рдЯреНрдпрд╛рдм рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рднрдирд┐рдПрдХреЛ рдШрдЯрдирд╛рдорд╛, рд╣рд╛рдореА url рдареЗрдЧрд╛рдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рдБрдЪ рдердкреНрдЫреМрдВ рдпрджрд┐ рдпреЛ "рдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреНрдЫред
chrome.tabs.onCreated.addListener( function (tabId, changeInfo, tab) {
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
var url = tabs[0].url;
if (url.substr(0,23) == "https://vk.com/away.php"){
var last = url.indexOf("&", 0)
if(last == -1)last = 1000;
var url = decodeURIComponent(url.substr(27, last-27));
chrome.tabs.update({url: url});
}
});
});
рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдВрдпреЛрдЬрди
рджреБрдмреИ рдлрд╛рдЗрд▓рд╣рд░реВ рдПрдЙрдЯреИ рдлреЛрд▓реНрдбрд░рдорд╛ рдЫрдиреН рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реЗрдкрдЫрд┐, рдХреНрд░реЛрдо рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН, рдПрдХреНрд╕рдЯреЗрдиреНрд╕рди рдЯреНрдпрд╛рдм рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ "рд▓реЛрдб рдЕрдирдкреНрдпрд╛рдХ рдПрдХреНрд╕реНрдЯреЗрдиреНрд╕рди" рдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЦреБрд▓реНрдиреЗ рд╡рд┐рдиреНрдбреЛрдорд╛, рд▓рд┐рдЦрд┐рдд рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдлрд╛рдЗрд▓рдХреЛ рдлреЛрд▓реНрдбрд░ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╕рдЩреНрдХрд▓рдирдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрдпрд╛рд░! рдЕрдм vk.com/away рдЬрд╕реНрддрд╛ рд╕рдмреИ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдореВрд▓рд╕рдБрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред
рдмрд░реБ рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛ рдХреЛ
рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕реНрдЯрдмрд▓реЗ рд▓рд╛рдЦреМрдВ рдзреЛрдЦрд╛рдзрдбреА рд╕рд╛рдЗрдЯрд╣рд░реВрдмрд╛рдЯ рдзреЗрд░реИ рдорд╛рдирд┐рд╕рд╣рд░реВрд▓рд╛рдИ рдмрдЪрд╛рдПрдХреЛ рдЫ, рддрдерд╛рдкрд┐, рдорд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЫ рдХрд┐ рдорд╛рдирд┐рд╕рд╣рд░реВ рдЖрдлреИрдВрд▓реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд▓рд┐рдЩреНрдХрдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреЗ рд╡рд╛ рдирдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рдЫред
рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреЛрд╕реНрдЯ рдЧрд░реЗрдВ
рд╕реНрд░реЛрдд: www.habr.com