Ska ändra så att den bara fångar Röst med stort R kanske och se om jag kan få till att det måste stå på en egen rad? Återkommer.Hittade felet
Rösten i den här posten finns inte med i statistiken för atr häger använde kolon där han inte borde.
javascript:(async function(){const threadUrl='https://www.rollspel.nu/threads/bh-ii-r1.85315/';const voteRegex=/Röst:\s*@?([A-Za-z0-9_åäöÅÄÖ\- ]+)/i;const votes=[];for(let page=1;page<=50;page++){const url=page===1?threadUrl:`${threadUrl}page-${page}`;try{const response=await fetch(url);if(!response.ok)throw new Error(`Misslyckades att hämta sida ${page}`);const html=await response.text();const parser=new DOMParser();const doc=parser.parseFromString(html,%27text/html%27);const posts=doc.querySelectorAll(%27article[data-author]%27);posts.forEach(post=>{const username=post.getAttribute(%27data-author%27);post.querySelectorAll(%27blockquote%27).forEach(bq=>bq.remove());const content=post.querySelector(%27.message-content%27)?.innerHTML;const postId=post.id?.replace(%27js-post-%27,%27%27);if(content){const tempDiv=document.createElement(%27div%27);tempDiv.innerHTML=content;const cleanContent=tempDiv.textContent||tempDiv.innerText;cleanContent.split(%27\n%27).forEach(line=>{const match=line.match(voteRegex);if(match&&postId){votes.push({from:username,to:match[1],postId});}});}});const nextPage=doc.querySelector(%27.pageNav-jump--next%27);if(!nextPage)break;}catch(err){console.error(err);break;}}const latestVotes={};const latestLinks={};votes.forEach(v=>{if(!latestVotes[v.from]){latestVotes[v.from]=[];}latestVotes[v.from].push(v.to);latestLinks[v.from]=v.postId;});const voteCounts={};Object.values(latestVotes).forEach(toList=>{toList.forEach(to=>{voteCounts[to]=(voteCounts[to]||0)+1;});});let mostVoted=null;let mostVotes=-1;for(const[person,count]of Object.entries(voteCounts)){if(count>mostVotes){mostVotes=count;mostVoted=person;}}const table=document.createElement(%27table%27);table.style.borderCollapse=%27collapse%27;table.style.marginTop=%2720px%27;table.style.fontFamily=%27Arial, sans-serif%27;table.style.width=%27100%%27;table.style.maxWidth=%27800px%27;table.style.marginLeft=%27auto%27;table.style.marginRight=%27auto%27;table.style.border=%272px solid #333';table.style.backgroundColor='#f4f4f9';table.innerHTML=%60<thead><tr><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; text-align: center; font-size: 18px;">Röstgivare</th><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; text-align: center; font-size: 18px;">Röster</th><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; text-align: center; font-size: 18px;">Länk</th></tr></thead>%60;const tbody=document.createElement('tbody');Object.entries(latestVotes).forEach(([from,toList])=>{const postId=latestLinks[from];const link=%60https://www.rollspel.nu/threads/bh-ii-r1.85315/post-${postId}%60;const tr=document.createElement('tr');tr.style.backgroundColor='#ffffff';tr.style.borderBottom='1px solid #ddd';tr.innerHTML=%60<td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;">${from}</td><td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;">${toList.join(', ')}</td><td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;"><a href="${link}" target="_blank" style="color: #007bff;">#${postId}</a></td>%60;tbody.appendChild(tr);});table.appendChild(tbody);document.body.appendChild(table);const hr=document.createElement('hr');hr.style.margin='20px 0';hr.style.borderTop='3px solid #333';document.body.appendChild(hr);const dangerText=document.createElement('div');dangerText.textContent=%60Risk för utröstning: ${mostVoted} (${mostVotes})%60;dangerText.style.fontSize='22px';dangerText.style.fontWeight='bold';dangerText.style.color='#d9534f';dangerText.style.textAlign='center';document.body.appendChild(dangerText);})();
Här är sången Troubadix vill sjungaJo, siaren får byta, men den får välja att dramatiskt ställa sig vid ett mål för att sätta lite press.
Nej det är inte så vi vill ha det. Vi vill ha action! Kom in och föreslå nått annat än kudde-strategin så rommarna inte vinnner på walk-over.Kontorsdagat här som wlöar ner mitt deltagande en del...
Kånner att jag inte har mycket att gå på...
Planen med att inte röstA på någon känns tråkig...eå blir det väl i princip inget spel alls?...men ör det så ni vill ha det så...
Det här känns som en konstig slutsats att dra, med tanke på att debatten om strategin är öppen och knappast över, och det mestadels är jag som driver den tesen.Kontorsdagat här som wlöar ner mitt deltagande en del...
Kånner att jag inte har mycket att gå på...
Planen med att inte röstA på någon känns tråkig...eå blir det väl i princip inget spel alls?...men ör det så ni vill ha det så...
Den plockar fortfarande röst med litet r, så exv Sidds post kommer med.Ok, en sista version (om ni inte säger att den är fel på något vis):
1) Skapa bokmärke
2) Editera det. Sätt namn till vad som helst
3) I URL tar du bort allt som står och klistrar in allt detta:
Nu får du en tabell med alla röster i rad, länk till senaste rösten och en rad med vem som riskerar att åka ut längst ner.Code:javascript:(async function(){const threadUrl='https://www.rollspel.nu/threads/bh-ii-r1.85315/';const voteRegex=/Röst:\s*@?([A-Za-z0-9_åäöÅÄÖ\- ]+)/i;const votes=[];for(let page=1;page<=50;page++){const url=page===1?threadUrl:`${threadUrl}page-${page}`;try{const response=await fetch(url);if(!response.ok)throw new Error(`Misslyckades att hämta sida ${page}`);const html=await response.text();const parser=new DOMParser();const doc=parser.parseFromString(html,%27text/html%27);const posts=doc.querySelectorAll(%27article[data-author]%27);posts.forEach(post=>{const username=post.getAttribute(%27data-author%27);post.querySelectorAll(%27blockquote%27).forEach(bq=>bq.remove());const content=post.querySelector(%27.message-content%27)?.innerHTML;const postId=post.id?.replace(%27js-post-%27,%27%27);if(content){const tempDiv=document.createElement(%27div%27);tempDiv.innerHTML=content;const cleanContent=tempDiv.textContent||tempDiv.innerText;cleanContent.split(%27\n%27).forEach(line=>{const match=line.match(voteRegex);if(match&&postId){votes.push({from:username,to:match[1],postId});}});}});const nextPage=doc.querySelector(%27.pageNav-jump--next%27);if(!nextPage)break;}catch(err){console.error(err);break;}}const latestVotes={};const latestLinks={};votes.forEach(v=>{if(!latestVotes[v.from]){latestVotes[v.from]=[];}latestVotes[v.from].push(v.to);latestLinks[v.from]=v.postId;});const voteCounts={};Object.values(latestVotes).forEach(toList=>{toList.forEach(to=>{voteCounts[to]=(voteCounts[to]||0)+1;});});let mostVoted=null;let mostVotes=-1;for(const[person,count]of Object.entries(voteCounts)){if(count>mostVotes){mostVotes=count;mostVoted=person;}}const table=document.createElement(%27table%27);table.style.borderCollapse=%27collapse%27;table.style.marginTop=%2720px%27;table.style.fontFamily=%27Arial, sans-serif%27;table.style.width=%27100%%27;table.style.maxWidth=%27800px%27;table.style.marginLeft=%27auto%27;table.style.marginRight=%27auto%27;table.style.border=%272px solid #333';table.style.backgroundColor='#f4f4f9';table.innerHTML=%60<thead><tr><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; text-align: center; font-size: 18px;">Röstgivare</th><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; text-align: center; font-size: 18px;">Röster</th><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; text-align: center; font-size: 18px;">Länk</th></tr></thead>%60;const tbody=document.createElement('tbody');Object.entries(latestVotes).forEach(([from,toList])=>{const postId=latestLinks[from];const link=%60https://www.rollspel.nu/threads/bh-ii-r1.85315/post-${postId}%60;const tr=document.createElement('tr');tr.style.backgroundColor='#ffffff';tr.style.borderBottom='1px solid #ddd';tr.innerHTML=%60<td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;">${from}</td><td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;">${toList.join(', ')}</td><td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;"><a href="${link}" target="_blank" style="color: #007bff;">#${postId}</a></td>%60;tbody.appendChild(tr);});table.appendChild(tbody);document.body.appendChild(table);const hr=document.createElement('hr');hr.style.margin='20px 0';hr.style.borderTop='3px solid #333';document.body.appendChild(hr);const dangerText=document.createElement('div');dangerText.textContent=%60Risk för utröstning: ${mostVoted} (${mostVotes})%60;dangerText.style.fontSize='22px';dangerText.style.fontWeight='bold';dangerText.style.color='#d9534f';dangerText.style.textAlign='center';document.body.appendChild(dangerText);})();
OBS! Den fångar alla gånger någon skriver "Röst:" och resten av raden, så den fångar lite för mycket, men den sparar endast det senaste, så om ni skrev för mycket i någon post för att ni nämnde något annat är det bara att rösta igen.
vann du?Kuriosa: jag spelade precis varulvsspel med mina elever i klassrummet!
Ok. Denna version tar bara ut Röst med stort R och har länkar till varje röst:Den plockar fortfarande röst med litet r, så exv Sidds post kommer med.
Inte för att utöka din arbetsbörda eller så (fantastiskt jobb!), men det går inte att få så alla röstningar blir länkade och inte bara den senaste?
javascript:(async function(){const threadUrl='https://www.rollspel.nu/threads/bh-ii-r1.85315/';const voteRegex=/Röst:\s*@?([A-Za-z0-9_åäöÅÄÖ\- ]+)/;const votes=[];for(let page=1;page<=50;page++){const url=page===1?threadUrl:`${threadUrl}page-${page}`;try{const response=await fetch(url);if(!response.ok)throw new Error(`Misslyckades att hämta sida ${page}`);const html=await response.text();const parser=new DOMParser();const doc=parser.parseFromString(html,%27text/html%27);const posts=doc.querySelectorAll(%27article[data-author]%27);posts.forEach(post=>{const username=post.getAttribute(%27data-author%27);post.querySelectorAll(%27blockquote%27).forEach(bq=>bq.remove());const content=post.querySelector(%27.message-content%27)?.innerHTML;const postId=post.id?.replace(%27js-post-%27,%27%27);if(content){const tempDiv=document.createElement(%27div%27);tempDiv.innerHTML=content;const cleanContent=tempDiv.textContent||tempDiv.innerText;cleanContent.split(%27\n%27).forEach(line=>{const match=line.match(voteRegex);if(match&&postId){votes.push({from:username,to:match[1],postId});}});}});const nextPage=doc.querySelector(%27.pageNav-jump--next%27);if(!nextPage)break;}catch(err){console.error(err);break;}}const votesByUser={};votes.forEach(v=>{if(!votesByUser[v.from])votesByUser[v.from]=[];votesByUser[v.from].push(v);});const voteCounts={};Object.values(votesByUser).forEach(voteList=>{voteList.forEach(v=>{voteCounts[v.to]=(voteCounts[v.to]||0)+1;});});let mostVoted=null;let mostVotes=-1;for(const[person,count]of Object.entries(voteCounts)){if(count>mostVotes){mostVotes=count;mostVoted=person;}}const table=document.createElement(%27table%27);table.style.borderCollapse=%27collapse%27;table.style.marginTop=%2720px%27;table.style.fontFamily=%27Arial, sans-serif%27;table.style.width=%27100%%27;table.style.maxWidth=%27800px%27;table.style.margin=%2720px auto%27;table.style.border=%272px solid #333';table.style.backgroundColor='#f4f4f9';table.innerHTML=%60<thead><tr><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; font-size: 18px;">Röstgivare</th><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; font-size: 18px;">Röster</th></tr></thead>%60;const tbody=document.createElement('tbody');Object.entries(votesByUser).forEach(([from,voteList])=>{const tr=document.createElement('tr');tr.style.backgroundColor='#ffffff';tr.style.borderBottom='1px solid #ddd';const voteLinks=voteList.map(v=>%60<a href="https://www.rollspel.nu/threads/bh-ii-r1.85315/post-${v.postId}" target="_blank" style="color: #007bff;">${v.to}</a>%60);tr.innerHTML=%60<td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;">${from}</td><td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;">${voteLinks.join(', ')}</td>%60;tbody.appendChild(tr);});table.appendChild(tbody);document.body.appendChild(table);const hr=document.createElement('hr');hr.style.margin='20px 0';hr.style.borderTop='3px solid #333';document.body.appendChild(hr);const dangerText=document.createElement('div');dangerText.textContent=%60Risk för utröstning: ${mostVoted} (${mostVotes})%60;dangerText.style.fontSize='22px';dangerText.style.fontWeight='bold';dangerText.style.color='#d9534f';dangerText.style.textAlign='center';document.body.appendChild(dangerText);})();
Min röst på Impe verkar inte finnas med, är det handhavande fel månne?Ok. Denna version tar bara ut Röst med stort R och har länkar till varje röst:
Exempel:Code:javascript:(async function(){const threadUrl='https://www.rollspel.nu/threads/bh-ii-r1.85315/';const voteRegex=/Röst:\s*@?([A-Za-z0-9_åäöÅÄÖ\- ]+)/;const votes=[];for(let page=1;page<=50;page++){const url=page===1?threadUrl:`${threadUrl}page-${page}`;try{const response=await fetch(url);if(!response.ok)throw new Error(`Misslyckades att hämta sida ${page}`);const html=await response.text();const parser=new DOMParser();const doc=parser.parseFromString(html,%27text/html%27);const posts=doc.querySelectorAll(%27article[data-author]%27);posts.forEach(post=>{const username=post.getAttribute(%27data-author%27);post.querySelectorAll(%27blockquote%27).forEach(bq=>bq.remove());const content=post.querySelector(%27.message-content%27)?.innerHTML;const postId=post.id?.replace(%27js-post-%27,%27%27);if(content){const tempDiv=document.createElement(%27div%27);tempDiv.innerHTML=content;const cleanContent=tempDiv.textContent||tempDiv.innerText;cleanContent.split(%27\n%27).forEach(line=>{const match=line.match(voteRegex);if(match&&postId){votes.push({from:username,to:match[1],postId});}});}});const nextPage=doc.querySelector(%27.pageNav-jump--next%27);if(!nextPage)break;}catch(err){console.error(err);break;}}const votesByUser={};votes.forEach(v=>{if(!votesByUser[v.from])votesByUser[v.from]=[];votesByUser[v.from].push(v);});const voteCounts={};Object.values(votesByUser).forEach(voteList=>{voteList.forEach(v=>{voteCounts[v.to]=(voteCounts[v.to]||0)+1;});});let mostVoted=null;let mostVotes=-1;for(const[person,count]of Object.entries(voteCounts)){if(count>mostVotes){mostVotes=count;mostVoted=person;}}const table=document.createElement(%27table%27);table.style.borderCollapse=%27collapse%27;table.style.marginTop=%2720px%27;table.style.fontFamily=%27Arial, sans-serif%27;table.style.width=%27100%%27;table.style.maxWidth=%27800px%27;table.style.margin=%2720px auto%27;table.style.border=%272px solid #333';table.style.backgroundColor='#f4f4f9';table.innerHTML=%60<thead><tr><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; font-size: 18px;">Röstgivare</th><th style="border: 1px solid #333; background-color: #3c8dbc; color: white; padding: 8px; font-size: 18px;">Röster</th></tr></thead>%60;const tbody=document.createElement('tbody');Object.entries(votesByUser).forEach(([from,voteList])=>{const tr=document.createElement('tr');tr.style.backgroundColor='#ffffff';tr.style.borderBottom='1px solid #ddd';const voteLinks=voteList.map(v=>%60<a href="https://www.rollspel.nu/threads/bh-ii-r1.85315/post-${v.postId}" target="_blank" style="color: #007bff;">${v.to}</a>%60);tr.innerHTML=%60<td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;">${from}</td><td style="border: 1px solid #333; padding: 8px; text-align: center; font-size: 16px;">${voteLinks.join(', ')}</td>%60;tbody.appendChild(tr);});table.appendChild(tbody);document.body.appendChild(table);const hr=document.createElement('hr');hr.style.margin='20px 0';hr.style.borderTop='3px solid #333';document.body.appendChild(hr);const dangerText=document.createElement('div');dangerText.textContent=%60Risk för utröstning: ${mostVoted} (${mostVotes})%60;dangerText.style.fontSize='22px';dangerText.style.fontWeight='bold';dangerText.style.color='#d9534f';dangerText.style.textAlign='center';document.body.appendChild(dangerText);})();
View attachment 23768
Ja, den saknar kolon.Min röst på Impe verkar inte finnas med, är det handhavande fel månne?
Röstade de ut dig?Kuriosa: jag spelade precis varulvsspel med mina elever i klassrummet!
Vad kan man säga om det här då? Precis innan det här inlägget diskuterades det att köra på med VJVS med outad siare. Flera ändå ganska intressanta misstankespår varit uppe för diskussion.Kontorsdagat här som wlöar ner mitt deltagande en del...
Kånner att jag inte har mycket att gå på...
Planen med att inte röstA på någon känns tråkig...eå blir det väl i princip inget spel alls?...men ör det så ni vill ha det så...