새 글이 없으면 무작위로 포스트 보여주기 |
- HTTP 응답코드를 이용해서 404 페이지는 출력하지 않으면서 무작위로 포스트를 보여줌.
- 블로그 설정에서 포스트 주소가 '숫자'로 지정되어야 함.
- 첫 접속 + 인덱스 페이지일 때만 적용됨.
보관함
dd-stuff.tistory.com
let rssUrl = 'https://dd-stuff.tistory.com/rss'; // RSS URL
let elapsedTime = 3; // 새글 기준 || 단위 - Day
elapsedTime = elapsedTime * 86400000;
let firstPost = 1; // 첫번째 포스트 주소
let lastPost = 38; // 마지막 포스트 주소
let randomUrl;
const _0x7343ab=_0x2f23;function _0x2f23(_0x3754ae,_0x12a56b){const _0x4c3396=_0x4c33();return _0x2f23=function(_0x2f23da,_0x4043eb){_0x2f23da=_0x2f23da-0x1d2;let _0x3d03b5=_0x4c3396[_0x2f23da];return _0x3d03b5;},_0x2f23(_0x3754ae,_0x12a56b);}(function(_0x29ae9f,_0x113b41){const _0x53dbbe=_0x2f23,_0x1b9930=_0x29ae9f();while(!![]){try{const _0x153ca8=parseInt(_0x53dbbe(0x1e1))/0x1*(parseInt(_0x53dbbe(0x1e3))/0x2)+-parseInt(_0x53dbbe(0x1eb))/0x3+-parseInt(_0x53dbbe(0x1d5))/0x4+parseInt(_0x53dbbe(0x1d3))/0x5+-parseInt(_0x53dbbe(0x1df))/0x6*(parseInt(_0x53dbbe(0x1d4))/0x7)+parseInt(_0x53dbbe(0x1d7))/0x8*(-parseInt(_0x53dbbe(0x1e2))/0x9)+parseInt(_0x53dbbe(0x1e0))/0xa*(parseInt(_0x53dbbe(0x1d8))/0xb);if(_0x153ca8===_0x113b41)break;else _0x1b9930['push'](_0x1b9930['shift']());}catch(_0x20e4f6){_0x1b9930['push'](_0x1b9930['shift']());}}}(_0x4c33,0x598f3));function getPostNum(){function _0x59abe4(_0x55e0f9,_0x51aeaf){const _0x57c25d=_0x2f23;return Math['floor'](Math[_0x57c25d(0x1db)]()*(_0x51aeaf-_0x55e0f9+0x1)+_0x55e0f9);}let _0x28e933=_0x59abe4(firstPost,lastPost);randomUrl='/'+_0x28e933;}function _0x4c33(){const _0x4f44cc=['729400dRZFBA','42gxAsuH','1024760WAOhgy','then','609064PMqDfT','8377633ipdlCI','replace','item\x20>\x20pubDate','random','href','split','parseFromString','29460IEWyNr','10qXdORM','89470JqsmgV','9QGJUWd','10nEDrCv','body','getTime','text','/rss','application/xml','referrer','querySelector','1878645chtzqT','indexOf','https://'];_0x4c33=function(){return _0x4f44cc;};return _0x4c33();}async function randomPost(){const _0x317f0c=_0x2f23;getPostNum();let _0x1e6382=await fetch(randomUrl);_0x1e6382['ok']?location[_0x317f0c(0x1dc)]=randomUrl:randomPost();}let rssUrl2=rssUrl[_0x7343ab(0x1d9)](_0x7343ab(0x1e7),'');rssUrl2=rssUrl2[_0x7343ab(0x1d9)](_0x7343ab(0x1d2),''),fetch(rssUrl)[_0x7343ab(0x1d6)](_0x4a7096=>_0x4a7096[_0x7343ab(0x1e6)]())[_0x7343ab(0x1d6)](_0x1e840a=>{const _0x28894d=_0x7343ab;let _0x55a4cb=new DOMParser(),_0x3b56cd=_0x55a4cb[_0x28894d(0x1de)](_0x1e840a,_0x28894d(0x1e8)),_0x4a0060=_0x3b56cd[_0x28894d(0x1ea)](_0x28894d(0x1da))['innerHTML'];_0x4a0060=_0x4a0060[_0x28894d(0x1dd)](',\x20'),_0x4a0060=_0x4a0060[0x1];let _0x377b66=new Date()[_0x28894d(0x1e5)](),_0x149b9a=new Date(_0x4a0060)['getTime']();_0x377b66-_0x149b9a>elapsedTime&&document[_0x28894d(0x1ea)](_0x28894d(0x1e4))['id']=='tt-body-index'&&document[_0x28894d(0x1e9)][_0x28894d(0x1ec)](rssUrl2)==-0x1&&randomPost();});
랜덤 포스트 기능과 같이 사용하려면 |
티스토리, 랜덤 포스트 만들기..
클릭 또는 단축키 입력시 무작위로 포스트 보여주기 간단 설명 HTTP 응답코드를 이용해서 404 페이지는 출력하지 않으면서 무작위로 포스트를 보여줌. 블로그 설정에서 포스트 주소가 '숫자'
ddamddon.tistory.com
<!-- onclick 속성을 사용해서 클릭시 randomPost() 함수를 호출합니다. -->
<!-- 예시 -->
<a href="javascript:void(0)" onclick="randomPost()">랜덤 포스트</a>
let rssUrl = 'https://dd-stuff.tistory.com/rss'; // RSS URL
let elapsedTime = 3; // 새글 기준 || 단위 - Day
elapsedTime = elapsedTime * 86400000;
let firstPost = 1; // 첫번째 포스트 주소
let lastPost = 38; // 마지막 포스트 주소
let isHotkey = 'yes'; // 단축키 기능 사용 유무 || yes or no
let randomHotkey = 'R'; // 단축키 지정 || 대소문자 상관 없음
let randomUrl;
const _0x3aaff2=_0x2a31;function _0x2a31(_0x4aa11f,_0x34a962){const _0x51acc6=_0x51ac();return _0x2a31=function(_0x2a3167,_0x22cb52){_0x2a3167=_0x2a3167-0x1f4;let _0x324fc2=_0x51acc6[_0x2a3167];return _0x324fc2;},_0x2a31(_0x4aa11f,_0x34a962);}(function(_0x5e605c,_0x1df646){const _0x5f2838=_0x2a31,_0x15d3b7=_0x5e605c();while(!![]){try{const _0xb2c47c=parseInt(_0x5f2838(0x1fe))/0x1*(parseInt(_0x5f2838(0x205))/0x2)+parseInt(_0x5f2838(0x204))/0x3+-parseInt(_0x5f2838(0x1f7))/0x4+parseInt(_0x5f2838(0x212))/0x5+-parseInt(_0x5f2838(0x215))/0x6*(-parseInt(_0x5f2838(0x201))/0x7)+-parseInt(_0x5f2838(0x1fb))/0x8*(-parseInt(_0x5f2838(0x20b))/0x9)+-parseInt(_0x5f2838(0x206))/0xa*(parseInt(_0x5f2838(0x203))/0xb);if(_0xb2c47c===_0x1df646)break;else _0x15d3b7['push'](_0x15d3b7['shift']());}catch(_0x2ed015){_0x15d3b7['push'](_0x15d3b7['shift']());}}}(_0x51ac,0xa2ce8));function getPostNum(){function _0x4decf8(_0x29328c,_0x13f6a3){const _0x43be37=_0x2a31;return Math[_0x43be37(0x1f4)](Math[_0x43be37(0x20a)]()*(_0x13f6a3-_0x29328c+0x1)+_0x29328c);}let _0x1a6828=_0x4decf8(firstPost,lastPost);randomUrl='/'+_0x1a6828;}function _0x51ac(){const _0x6090ea=['690bvBpgD','https://','floor','INPUT','indexOf','4018620xFJRUc','application/xml','querySelector','activeElement','8oqyknG','keyup','getTime','31fRHVRQ','referrer','parseFromString','350WpysaP','/rss','77ssCLXo','3952977wiFVUs','64066gyXGOr','1989430nMTwve','tagName','replace','body','random','1000476NTGJVm','item\x20>\x20pubDate','tt-body-index','toLowerCase','innerHTML','href','TEXTAREA','3182580JJvUFq','addEventListener','then'];_0x51ac=function(){return _0x6090ea;};return _0x51ac();}async function randomPost(){const _0x3f1799=_0x2a31;getPostNum();let _0x3f3e38=await fetch(randomUrl);_0x3f3e38['ok']?location[_0x3f1799(0x210)]=randomUrl:randomPost();}document[_0x3aaff2(0x213)](_0x3aaff2(0x1fc),function(_0x5cc32b){const _0x42742c=_0x3aaff2;document[_0x42742c(0x1fa)][_0x42742c(0x207)]!=_0x42742c(0x211)&&document[_0x42742c(0x1fa)][_0x42742c(0x207)]!=_0x42742c(0x1f5)&&(_0x5cc32b['key']['toLowerCase']()==randomHotkey[_0x42742c(0x20e)]()&&randomPost());});let rssUrl2=rssUrl['replace'](_0x3aaff2(0x202),'');rssUrl2=rssUrl2[_0x3aaff2(0x208)](_0x3aaff2(0x216),''),fetch(rssUrl)[_0x3aaff2(0x214)](_0x4192aa=>_0x4192aa['text']())[_0x3aaff2(0x214)](_0x3e43db=>{const _0x32e416=_0x3aaff2;let _0x324d17=new DOMParser(),_0xe08c8d=_0x324d17[_0x32e416(0x200)](_0x3e43db,_0x32e416(0x1f8)),_0x3a7262=_0xe08c8d[_0x32e416(0x1f9)](_0x32e416(0x20c))[_0x32e416(0x20f)];_0x3a7262=_0x3a7262['split'](',\x20'),_0x3a7262=_0x3a7262[0x1];let _0x4333cf=new Date()[_0x32e416(0x1fd)](),_0x15d5ed=new Date(_0x3a7262)[_0x32e416(0x1fd)]();_0x4333cf-_0x15d5ed>elapsedTime&&document[_0x32e416(0x1f9)](_0x32e416(0x209))['id']==_0x32e416(0x20d)&&document[_0x32e416(0x1ff)][_0x32e416(0x1f6)](rssUrl2)==-0x1&&randomPost();});