자바 스크립트 (ES6), 333 329 327 323 283 바이트
api.stackexchange.com
도메인 내에서 실행해야 합니다 ( 관련 메타 ). Promise
URL 이 포함 된 ( 관련 메타 )를 반환합니다 .
f=async i=>await(u="/questions/",s="?tagged=code-golf&site=codegolf",q=await(await(await fetch(u+s)).json()).items.filter(x=>x.owner.user_id!=i&x.answer_count<11).sort(_=>.5-Math.random())[0],await(await fetch(u+q.question_id+s)).json()).items.some(x=>x.owner.user_id==i)?f(i):q.link
시도 해봐
f=async i=>await(u="//api.stackexchange.com/questions/",s="?tagged=code-golf&site=codegolf",q=await(await(await fetch(u+s)).json()).items.filter(x=>x.owner.user_id!=i&x.answer_count<11).sort(_=>.5-Math.random())[0],await(await fetch(u+q.question_id+s)).json()).items.some(x=>x.owner.user_id==i)?f(i):q.link
k.previousSibling.value=58974 // me
k.onclick=_=>f(+k.previousSibling.value).then(p=>k.nextSibling.innerText=p)
<input type=number><button id=k>Fetch</button><pre>
북마크릿
그리고 여기는 사용자 정의 가능한 북마크로, 아직 답변하지 않은 임의의 질문을로드합니다. 사용하려면 브라우저 툴바에 새 북마크를 추가하고 전체 코드를 URL 필드에 놓으십시오.
위의 솔루션과 달리, 이것은 사이트의 모든 질문에 작동하므로 (사이트 및 태그에 따라) 실행 속도가 느릴 수 있으며 API가 할 수있는 것처럼 API에 필요한 쿼리 수가 비쌀 수 있습니다 한 번에 100 개의 질문 만 반환합니다.
사용자 정의하려면 다음 변수를 변경하십시오.
k
: API 키- 여기에 등록 할 수 있습니다 .
s
: 질문을하려는 Stack Exchange 사이트.
i
: 해당 사이트의 사용자 ID
t
: 필터링하려는 태그입니다. 이 옵션에는 4 가지 옵션이 있습니다.
""
: 빈 문자열; 태그별로 필터링하지 않으려면
"code-golf;string"
: 필터링하려는 세미콜론으로 구분 된 태그 목록,
prompt("Tags:")
: 필터링하려는 태그를 입력하라는 메시지가 표시되거나
prompt("Tags:","code-golf;string")
: 필터링 할 태그를 입력하라는 메시지가 표시되며 기본 목록이 제공됩니다.
javascript:(f=(
/* See /codegolf//a/122400/58974 for documenation */
k="",
s="codegolf",
i=58974,
t="code-golf",
p=1,q=[],r=1)=>fetch((u="//api.stackexchange.com/questions/")+(d=`?key=${k}&tagged=${t}&site=`+s)+`&page=${p}&pagesize=100`).then(r=>r.json()).then(j=>r&&(q=[...q,...j.items.filter(x=>x.owner.user_id!=i&(a=x.answer_count)&a<11)])^j.has_more?f(i,k,s,t,p+1,q,1):q.sort(_=>.5-Math.random())[0]).then(y=>fetch(u+y.question_id+"/answers"+d).then(r=>r.json()).then(j=>j.items.some(x=>x.owner.user_id==i)?f(i,k,s,t,q,0):window.location=y.link)))()