(https://github.com/Tampermonkey/tampermonkey/issues/499์๋ ๊ฒ์๋จ)
Greasy Fork์ ์คํฌ๋ฆฝํธ์๋ @updateURL
๋๋ @downloadURL
๊ฐ ์์ผ๋ฏ๋ก ์
๋ฐ์ดํธ๋ฅผ ํ์ธํ ๋ ์๋ ์ค์น๋ URL์ด ์
๋ฐ์ดํธ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ฒ์ ์ข์ ๊ฒ์
๋๋ค.
Greasy Fork๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ๋ฒ์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ ์๋ ์์ต๋๋ค. ์ค์น URL์๋ ๋ฒ์ ์ ๋ํ๋ด๋ ๋งค๊ฐ๋ณ์๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ ๋ฐ์ดํธ๋ ์ฌ์ ํ "์๋"ํ์ง๋ง ๋ณ๊ฒฝ ์ฌํญ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ธก์ ์ผ๋ถ ๋ฆฌ์์ค๋ฅผ ์ ์ฝํ๊ธฐ ์ํด ์ ๋ฐ์ดํธ๋ฅผ ํ์ธํ์ง ์๋๋ก Greasemonkey์ ์ง์ํ๊ณ ์ถ์ต๋๋ค. ์ด ์์ ์ ์ํํ๊ธฐ ์ํด ์คํฌ๋ฆฝํธ์ ๋ฃ์ ์ ์๋ ๊ฒ์ด ์์ต๋๊น?
<strong i="5">@updateURL</strong> about:blank
+ <strong i="7">@downloadURL</strong> about:blank
ํด์ผ ํฉ๋๋ค(์ต์ํ GM 3.x์์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ์
๋ฐ์ดํธ๋ฅผ ๋นํ์ฑํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ต๋๋ค).
updateURL ๋ฐ downloadURL์ 4.x์์ ์ง์๋์ง ์์ต๋๋ค.
3.x์์๋ ์ด๋ฅผ ์ํด ํ์ค AOM ์ปจํธ๋กค์ ์ฌ์ฉํ์ต๋๋ค.
4.x์์๋ ์์ง ์๋ ์ ๋ฐ์ดํธ๊ฐ ์ ํ ์์ผ๋ฏ๋ก ์ผ๋จ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ผ๋ก ํฌํจํด์ผ ํฉ๋๋ค.
<strong i="5">@downloadURL</strong> none
๋ฃ๋ ๊ฒ์ด 4.x์ ๋ํด ๊ณํ๋ ๊ฒ๊ณผ ์ผ์นํฉ๋๊น?
์ค, ๋น์ ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ฌํ๋ ์๋ฒ๊ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ฐ์ดํธํด์๋ ์ ๋๋ค๊ณ GM์ ์๋ฆฌ๊ธฐ๋ฅผ ์ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋ฐฉ๊ธ ๊นจ๋ฌ์์ต๋๋ค. (์, ์ค๋ช ์ด ์ ์ ๋๋ฌ๋ค์...)
GM 4์์ @...URL
์์ฑ์ ๊ฐ์ ์ฝ๊ฑฐ๋ ์ฌ์ฉํ ๊ณํ์ ์์ต๋๋ค. ์
๋ฐ์ดํธ ์ฝ๋๊ฐ ๋ง์นจ๋ด ์์ฑ๋ ๋๊น์ง ์๋ฌด ๊ฒ๋ ์ฝ์ํ ์ ์์ง๋ง ์ผ์ข
์ HTTP ํค๋๊ฐ ์์ค๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ์๋ํ๋ ๊ฒ๋ณด๋ค ๊ธฐ๋ถ์ด ์ข์ต๋๋ค. ์คํฌ๋ฆฝํธ์.
OTOH TM์ด ์์ ๊ฐ์ ์ง์ํ๋ ๊ฒฝ์ฐ ํญ์ ๊ณ ๋ คํด์ผ ํ ํธํ์ฑ์ด ์์ต๋๋ค.
OP๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
์ค์น URL์๋ ๋ฒ์ ์ ๋ํ๋ด๋ ๋งค๊ฐ๋ณ์๊ฐ ํฌํจ๋ฉ๋๋ค.
์ด๋ก๋ถํฐ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๊ฐ ํน์ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ์ ๋ํ ํจ๊ณผ์ ์ธ ์๊ตฌ ๋งํฌ๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ํ ์๋ ์
๋ฐ์ดํธ/์
๋ฐ์ดํธ ํ์ธ ๊ธฐ๋ฅ์ ๋ด๋ถ์ ์ ์ฅ๋ downloadUrl
(์ด๊ธฐ ์ค์น์ URL์ผ ๋ฟ์
๋๋ค)๋ฅผ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ๊ฐ์ฅ ๋์ต๋๋ค. ์ต์ํ์ ๋ณ๊ฒฝ์ผ๋ก ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ์งํ ๋ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ์ผ์น๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฌํ ํํ์ ์๊ตฌ ์ฐ๊ฒฐ์ ์ง์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. user-script-detect.run.js
๋ฆฌ์ค๋์ *://*/*.user.js?*
๋ฅผ ์ถ๊ฐํ์ฌ ๋ฌ์ฑํ์ต๋๋ค.
์ค, ๋น์ ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ฌํ๋ ์๋ฒ๊ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ฐ์ดํธํด์๋ ์ ๋๋ค๊ณ GM์ ์๋ฆฌ๊ธฐ๋ฅผ ์ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋ฐฉ๊ธ ๊นจ๋ฌ์์ต๋๋ค.
๋ค, ๋ง์ต๋๋ค.
์ผ์ข ์ HTTP ํค๋๊ฐ ์คํฌ๋ฆฝํธ ์์ค๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ณด๋ค ๋ซ๋ค๊ณ ๋๋๋๋ค.
Greasy Fork๋ ์คํฌ๋ฆฝํธ๋ฅผ DB์ ์ ์ฅํ๊ณ ์ด์จ๋ ์์ค๋ฅผ ๋ค์ ์์ฑํฉ๋๋ค(์: user.js์์ meta.js ์์ฑ). ์์ค๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋์๊ฒ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ์บ์ฑ ์ํํธ์จ์ด๋ฅผ ํต๊ณผํ ์ ์์ผ๋ฏ๋ก HTTP ํค๋๊ฐ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
์ด๋ก๋ถํฐ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๊ฐ ํน์ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ์ ๋ํ ํจ๊ณผ์ ์ธ ์๊ตฌ ๋งํฌ๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
๋ด ๋ง์ ํ์๋ฉด, version ๋งค๊ฐ๋ณ์๋ ํน์ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ์ ํน์ ๋ฒ์ ์ ๋ํ ์๊ตฌ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฌ์ฉ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ์งํ ๋ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ์ผ์น๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฌํ ํํ์ ์๊ตฌ ์ฐ๊ฒฐ์ ์ง์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
Greasy Fork๋ ํน์ ๋ฒ์ ์ ์ฐ๊ฒฐํ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ๋ชฉ์ ์ผ๋ก URL ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
์ถ๊ฐ ๋ฐ์ ์: ์์ง ๊ฐ ํธํ( @derjanb , @gera2ld)์ ๋ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ์ง๋ง: ์์ค ์ ์ด ์ ๋ฐ์ดํธ ํ์ธ์ ํ์ฉํ๋ ค๋ฉด ์ ํญ๋ชฉ์ ๋ผ์ธ์ ๋ฐ๋ผ ๋ ๋ง์ด ์๊ฐํ๊ณ ์์ต๋๋ค* ์ ๊ฐ์:
// <strong i="7">@updates</strong> never
// <strong i="8">@updates</strong> 24h
// <strong i="9">@updates</strong> 7d
์คํฌ๋ฆฝํธ๊ฐ ์๋ ์ ๋ฐ์ดํธ๋๋ ๋น๋๋ฅผ ์ง์ ํ๋๋ก ํฉ๋๋ค. ๊ฐ๋ฐ ์ค์ผ ๋๋ ๋ฎ๊ฒ ์ ์งํ ์ ์๊ณ ์์ ๋๋ฉด ์กฐ์ ํ ์ ์์ต๋๋ค(๊ทธ๋ฌ๋ ๋ค์ ์ ๋ฐ์ดํธ๋ฅผ ์์ํ๋ฉด ๋ค์ ๋ฎ์ถฅ๋๋ค). ๊ทธ๋ฆฌ๊ณ ์คํฌ๋ฆฝํธ ํธ์คํธ๋ (์ด์จ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ญ์ ํ๋ ค๋ ๊ฒฝ์ฐ) ์ ์ ํ๋ค๊ณ ํ๋จ๋๋ ๋๋ก ๊ฐ์ ๋ฎ์ด์ธ ์ ์์ต๋๋ค(์ค์นํ ์ฌ์ฉ์ ์, ์๋ฒ ๋ฆฌ์์ค ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ํจ).
์ข ๋ ์ค๋ช ์ ์ธ ์ด๋ฆ์ ์ํ์ง๋ง ์์ง ๋ง์์ ๋๋ ํน์ ํ๋ณด์๊ฐ ์์ต๋๋ค.
* Never ๊ฐ์ ๊ฒฝ์ฐ <strong i="14">@downloadURL</strong> none
์ง์๋ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๊ธฐ์ ์ ์ธ ์ธก๋ฉด์์ sth์ด์ด์ผํฉ๋๋ค. @updatefrequency
(๋๋ฌด ๊ธธ์ฃ ?) ๋๋ @updatecycle
.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ๊ฒ์ฌํ๋ ํธ๋ฆฌ๊ฑฐ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค...
์คํฌ๋ฆฝํธ๊ฐ ์๋ ์ ๋ฐ์ดํธ๋๋ ๋น๋๋ฅผ ์ง์ ํ๋๋ก ํฉ๋๋ค. ๊ฐ๋ฐ ์ค์ผ ๋๋ ๋ฎ๊ฒ ์ ์งํ ์ ์๊ณ ์์ ๋๋ฉด ์กฐ์ ํ ์ ์์ต๋๋ค(๊ทธ๋ฌ๋ ๋ค์ ์ ๋ฐ์ดํธ๋ฅผ ์์ํ๋ฉด ๋ค์ ๋ฎ์ถฅ๋๋ค). ๊ทธ๋ฆฌ๊ณ ์คํฌ๋ฆฝํธ ํธ์คํธ๋ (์ด์จ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ญ์ ํ๋ ค๋ ๊ฒฝ์ฐ) ์ ์ ํ๋ค๊ณ ํ๋จ๋๋ ๋๋ก ๊ฐ์ ๋ฎ์ด์ธ ์ ์์ต๋๋ค(์ค์นํ ์ฌ์ฉ์ ์, ์๋ฒ ๋ฆฌ์์ค ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ํจ).
ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฌ๋ค์.
์ข ๋ ์ค๋ช ์ ์ธ ์ด๋ฆ์ ์ํ์ง๋ง ์์ง ๋ง์์ ๋๋ ํน์ ํ๋ณด์๊ฐ ์์ต๋๋ค.
์๋ง๋ @updateInterval
?
๋๋ ๋จ์ํ @updatetime
... (๋งค์ฐ ์ ํํ์ง๋ ์์ง๋ง ๋์ ์ ๋๋)
@updatetime
๋ ๋น๋๊ฐ ์๋๋ผ "์ค์ 8์"๋ฅผ ์๊ฐํ๊ฒ ํฉ๋๋ค.
@Sxderp ๊ทธ๋ผ <strong i="6">@updatefreq</strong> 1d
ํ์๊ฒ ์ต๋๊น?
๋๋ ์์ด๋ฏผ์ด ์๋์ง๋ง ๊ฐ(์ฆ, 24h)์ ์ค์ ๋ก ์ฃผํ์๊ฐ ์๋๋๋ค. ๊ฐ๊ฒฉ์ธ๊ฐ ๋ง์นจํ์ธ๊ฐ? ๐ค
<strong i="5">@updateinterval</strong> 1day
์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์ผ๋ฐ์ ์ธ ์์ด์์ ์ค๋ฒ๋ก๋ ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ "๋ง์นจํ"์ ๋ฐ๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค (์ ํํ ๊ณผํ์ ์๋ฏธ๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ )
@updateinterval
๋ @updatetime
๋งํผ ์ ํํ์ง ์์ต๋๋ค. ๊ฐ๊ฒฉ์๋ ๊ด์ฌ์ด ์์ง๋ง ์
๋ฐ์ดํธ ์ฌ์ด์ (์ต๋) ์๊ฐ ๋ฒ์๋ ...
๋๋ ๊ฒฝ๊ณผ๋ฅผ ๋ณ๋ก ์ข์ํ์ง ์์ผ๋ฏ๋ก ๋ค์ ์ ์์ <strong i="5">@updatespan</strong> 1d
...
@arantius , ์๋ ์ ๋ฐ์ดํธ๋ ์ธ์ ์์ฝ๋๋์? FF60์์ 3.x๋ก ์ ํํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฌ๋ค์.
์๋ง๋
@updateInterval
?