您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Forum export for surveys on Prolific
- // ==UserScript==
- // @name Prolific Export
- // @namespace https://github.com/Kadauchi/
- // @version 1.1.0
- // @description Forum export for surveys on Prolific
- // @author Kadauchi
- // @icon http://i.imgur.com/oGRQwPN.png
- // @include https://www.prolific.ac/studies*
- // @grant GM_setClipboard
- // ==/UserScript==
- function exportStudy (id) {
- const study = document.getElementById(id);
- const attrs = study.getElementsByTagName(`li`);
- const link = study.querySelector(`a[href^="/studies/"]`).href;
- const title = study.getElementsByTagName(`h3`)[0].textContent;
- const researcher = attrs[0].textContent.split(':')[1];
- const reward = attrs[1].textContent.split(':')[1].split(`$`)[0];
- const perhour = attrs[2].textContent.split(':')[1];
- const available = attrs[3].textContent.split(':')[1];
- const time = attrs[4].textContent.split(':')[1];
- const completion = attrs[5].textContent.split(':')[1];
- const exchangeRate = localStorage.getItem(`exchangeRate`);
- const exportcode =
- `[table][tr][td]` +
- `[b][size=5][color=red]PROLIFIC STUDY[/color][/size][/b]\n` +
- `[b]Title:[/b] [url=${link}]${title}[/url]\n` +
- `[b]Hosted by : [/b] ${researcher}\n` +
- `[b]Reward : [/b][color=green][b] ${reward}[/color] ${exchangeRate ? `| [color=green]$${(+exchangeRate * +reward.replace(/[^0-9.]/g, ``)).toFixed(2)}[/color]` : ``}[/b]\n` +
- `[b]Avg. Reward Per Hour : [/b] ${perhour} ${exchangeRate ? `| $${(+exchangeRate * +perhour.replace(/[^0-9.]/g, ``)).toFixed(2)}/hr` : ``}\n` +
- `[b]Available Places : [/b] ${available}\n` +
- `[b]Maximum Allowed Time : [/b] ${time}\n` +
- `[b]Avg. Completion Time : [/b] ${completion}\n` +
- `[/td][/tr][/table]`
- ;
- GM_setClipboard(exportcode);
- alert(`Forum export has been copied to your clipboard.`);
- }
- for (let elem of document.getElementsByClassName(`study`)) {
- elem.insertAdjacentHTML(
- `beforebegin`,
- `<button class="exporter" type="button" data-id="${elem.id}">Forum Export</button>`
- );
- }
- document.addEventListener(`click`, function (event) {
- const elem = event.target;
- if (elem.matches(`.exporter`)) {
- exportStudy(elem.dataset.id);
- }
- });