您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Exports WME Place Browser's table output to CSV and download to local disk
// ==UserScript== // @name Place Browser Table Export // @namespace http://junyianl.net/ // @version 2019.10.05.01 // @description Exports WME Place Browser's table output to CSV and download to local disk // @author junyianl // @match https://w-tools.org/* // @grant none // ==/UserScript== /* Changelogs: 2019.10.05.01 - Enhancement: Change pipe separator for validation rules to newline 2019.10.04.04 - Bugfix: Change separator for headers. 2019.10.04.03 - Bugfix: Separators were not changed. 2019.10.04.02 - Changed PL column to actual permalink. - Using tab separator instead of comma, for easier copy-and-pasting into Google spreadsheet. */ (function() { 'use strict'; // Your code here... const validations = [ "Missing Name", // High "Area not Point", // Medium "Point not Area", "Incorrect Primary Category", "Missing Street", "Invalid HN", "Not Updated Since Created", // Low "IGN Editor", "Phone Number Format", "Area Very Small", "Lower Case Name", "Lock Level (Completeness)", // Info "Parent Category", "Missing Google Place Link", "Last Edit By Automated Process", // Undocumented "Missing Google Place Link (6 Month Timer Active)", "Possible Nearby Duplicate" ]; const tableSeparator = "\t"; function downloadCSV(csv, filename) { var csvFile; var downloadLink; // CSV file csvFile = new Blob([csv], {type: "text/csv"}); // Download link downloadLink = document.createElement("a"); // File name downloadLink.download = filename; // Create a link to the file downloadLink.href = window.URL.createObjectURL(csvFile); // Hide download link // downloadLink.style.display = "none"; // Add the link to DOM document.body.appendChild(downloadLink); // Click download link downloadLink.click(); } function exportTableToCSV(filename) { var csv = []; var table = document.querySelectorAll("table.tablesorter"); // Populate column headers var row = [], cols = table[0].querySelectorAll("th"); for (var i = 0; i < cols.length; i++) { row.push('"' + cols[i].innerText + '"'); } csv.push(row.join(tableSeparator)); // Populate places var places = table[0].querySelectorAll("[class*=validate]"); for (var j = 0; j < places.length; j++) { var placerow = [], placecol = places[j].querySelectorAll("td"); for (var k = 0; k < placecol.length; k++) { switch (k) { case 0: var pl = placecol[k].querySelector("a"); placerow.push('"' + pl.href + '"'); break; case 2: var issue = [], issues = placecol[k].querySelectorAll("li"); for (var l = 0; l < issues.length; l++) { issue.push(issues[l].innerText); } placerow.push('"' + issue.join("\n") + '"'); break; default: placerow.push('"' + placecol[k].innerText.trim() + '"'); } } csv.push(placerow.join(tableSeparator)); } // Download CSV file downloadCSV(csv.join("\r\n"), filename); } var group = document.querySelector('[id=MainContent_ddlAreaGroup]').selectedOptions[0].value; var area = document.querySelector('[id=MainContent_DropDownList1]').selectedOptions[0].innerText; var date = new Date(); exportTableToCSV(group + '_' + area + '_' + date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate() + '.csv'); })();