VKontakte์ ๊ฒ์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๋ค๋ฅธ ์์ ๋คํธ์ํฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋จผ์ "์์ ํ" ๋งํฌ๋ก ์ ํ๋ ํ ์์ ๋คํธ์ํฌ๊ฐ ์ฌ์ฉ์์๊ฒ ์ถ๊ฐ ํ์ฉ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ์ธ์ฌํ ์ฌ๋๋ค์ ๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ํ์์ค์ "vk.com/away.php"๊ฐ XNUMX์ด ๋์ ๋ํ๋๋ ๊ฒ์ ์์์ฐจ๋ ธ์ง๋ง ๋ฌผ๋ก ๊ทธ๊ฒ์ ์๋ฌด๋ฐ ์ค์์ฑ๋ ๋ถ์ฌํ์ง ์์์ต๋๋ค.
์ ์ฌ ์๋
์ด๋ ๋ , ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ์๋ฃํ ์ด๋ค ํ๋ก๊ทธ๋๋จธ๋ ์์ ์ด ๋ชจ๋ ์ฌ๋์๊ฒ ์ด ํ๋ก์ ํธ์ ๋ํด ์๋ฆฌ๊ณ ์ถ์ ์๊ตฌ์ ์ฌ๋ก์กํ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ํ๋ก์ ํธ๋ ๊ณ ์ IP๋ฅผ ์ฌ์ฉํ์ง๋ง ๋๋ฉ์ธ ์ด๋ฆ์ ์๋ ์๋ฒ์์ ํธ์คํ ๋์์ต๋๋ค. ๋ฐ๋ผ์ .ddns.net ๋๋ฉ์ธ์ ์๋ฆ๋ค์ด XNUMX์ฐจ ํ์ ๋๋ฉ์ธ์ด ๋น ๋ฅด๊ฒ ์์ฑ๋์ด ๊ถ๊ทน์ ์ผ๋ก ๋งํฌ๋ก ์ฌ์ฉ๋์์ต๋๋ค.
์ ์ ํ ๊ฒ์๋ฌผ๋ก ๋์์จ ํ๋ก๊ทธ๋๋จธ๋ ์ฌ์ดํธ ๋์ ์์ ํ์ง ์์ ์ฌ์ดํธ๋ก์ ์ ํ์ ์๋ฆฌ๋ VK ์คํ ์ด ์ด๋ฆฌ๊ณ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋๋ํ ์ฌ์ฉ์ ์์ ์ด ์ด๋ ์ฌ์ดํธ๋ก ๊ฐ์ผ ํ ์ง, ์ด๋ค ์ฌ์ดํธ๋ก ๊ฐ์ผ ํ ์ง ๊ฒฐ์ ํ ๊ถ๋ฆฌ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง VKontakte๋ ๋ค๋ฅด๊ฒ ์๊ฐํ๋ฉฐ ๋ชฉ๋ฐ ์์ด ๋งํฌ๋ฅผ ๋ฐ๋ผ๊ฐ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค.
๋ฌด์์ด ์๋ชป ๋์๋์
์ด ๊ตฌํ์๋ ๋ช ๊ฐ์ง ์ค์ํ ๋จ์ ์ด ์์ต๋๋ค.
- ์์ฌ์ค๋ฌ์ด ์ฌ์ดํธ๋ฅผ ์ด ์ ์์ต๋๋ค. ์์์ ์ค๋ช ํ ๋๋ก ์ฌ์ฉ์๋ ์คํ ์ ๊ทน๋ณตํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋งํฌ๋ฅผ ์ฌ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋งํฌ๋ฅผ ๋ณต์ฌํ์ฌ ์ฃผ์ ํ์์ค์ ๋ถ์ฌ๋ฃ๋ ๊ฒ์ ๋๋ค.
- ๋งํฌ ํ์ ์๋๊ฐ ๋๋ ค์ง๋๋ค. ๋ฆฌ๋๋ ์ ์๋๋ ํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋ฐ๋ผ์ ๋์ ํ์ผ๋ก ์ธํด ์์คํ ์๋ช ์ ์๊ฐ์ด ์์ค๋ ์ ์์ผ๋ฉฐ, ์ด๋ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ฏ์ด ์ฉ๋ฉํ ์ ์๋ ์ผ์ ๋๋ค.
- ์ ํ ๋ชจ๋ํฐ๋ง. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด VK๊ฐ ์ฌ์ฉํ๋ ์ฌ์ฉ์ ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ๋ ์ฝ๊ฒ ์์งํ ์ ์์ผ๋ฉฐ, ์ ํ์ด ์ด๋ฃจ์ด์ง ๊ฒ์๋ฌผ์ ID๋ฅผ ๋ณด์ ๋งํฌ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ฅ๊ณ ํด๋ฐฉ
์์ ๋ชจ๋ ๋ฌธ์ ์ ๋ํ ์ต์ ์ ์๋ฃจ์
์ ๋ธ๋ผ์ฐ์ ํ์ฅ์ด ๋ ์ ์์ต๋๋ค. ๋ถ๋ช
ํ ์ด์ ๋ก ์ ํ์ Chrome์ ์์ต๋๋ค. ํ๋ธ์ ํ๋ฅญํ ๊ฒ์ด ์์ต๋๋ค
์ด๋ฌํ ํ์ฅ์ ์์ฑํ๋ ค๋ฉด ๋ณ๋์ ํด๋์ ๋ ๊ฐ์ ํ์ผ(json-Manifest ๋ฐ ํ์ฌ URL ์ฃผ์๋ฅผ ๋ชจ๋ํฐ๋งํ๋ JavaScript ํ์ผ)์ ์์ฑํด์ผ ํฉ๋๋ค.
๋งค๋ํ์คํธ ํ์ผ ๋ง๋ค๊ธฐ
์ฐ๋ฆฌ์๊ฒ ํ์ํ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํ์ฅ ๊ธฐ๋ฅ์ ํญ ์์ ๊ถํ์ ๋ถ์ฌํ๊ณ ์คํ ๊ฐ๋ฅํ ์คํฌ๋ฆฝํธ๋ฅผ ํ ๋นํ๋ ๊ฒ์ ๋๋ค.
{
"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});
}
});
});
ํ์ฅ ์กฐ๋ฆฝ
๋ ํ์ผ์ด ๋ชจ๋ ๋์ผํ ํด๋์ ์๋์ง ํ์ธํ ํ Chrome์ ์ด๊ณ ํ์ฅ ํ๋ก๊ทธ๋จ ํญ์ ์ ํํ ๋ค์ '์์ถํด์ ๋ ํ์ฅ ํ๋ก๊ทธ๋จ ๋ก๋'๋ฅผ ํด๋ฆญํ์ธ์. ์ด๋ฆฌ๋ ์ฐฝ์์ ์์ฑ๋ ํ์ฅ ํ์ผ์ด ์๋ ํด๋๋ฅผ ์ ํํ๊ณ ์์ง์ ํด๋ฆญํฉ๋๋ค. ์ค๋น๊ฐ ๋! ์ด์ vk.com/away์ ๊ฐ์ ๋ชจ๋ ๋งํฌ๊ฐ ์๋ ๋งํฌ๋ก ๋์ฒด๋ฉ๋๋ค.
๋์ ๊ฒฐ๋ก
๋ฌผ๋ก ์ด๋ฌํ ์ ํ์ ์คํ
์ ์๋ฐฑ๋ง ๊ฐ์ ์ฌ๊ธฐ ์ฌ์ดํธ์์ ๋ง์ ์ฌ๋๋ค์ ๊ตฌํด ๋์ง๋ง ์์ ํ์ง ์์ ๋งํฌ๋ฅผ ํด๋ฆญํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ๊ถ๋ฆฌ๋ ์ฌ๋๋ค ์์ ์๊ฒ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
ํธ์์ ํ๋ก์ ํธ๋ฅผ ๊ฒ์ํ์ต๋๋ค.
์ถ์ฒ : habr.com