40 строки
		
	
	
		
			858 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 строки
		
	
	
		
			858 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import fs from "fs";
 | 
						|
import archieml from "archieml";
 | 
						|
import docs from "../google.config.js";
 | 
						|
 | 
						|
const CWD = process.cwd();
 | 
						|
 | 
						|
const fetchGoogle = async ({ id, gid }) => {
 | 
						|
	console.log(`fetching...${id}`);
 | 
						|
 | 
						|
	const base = "https://docs.google.com";
 | 
						|
	const post = gid
 | 
						|
		? `spreadsheets/u/1/d/${id}/export?format=csv&id=${id}&gid=${gid}`
 | 
						|
		: `document/d/${id}/export?format=txt`;
 | 
						|
	const url = `${base}/${post}`;
 | 
						|
 | 
						|
	try {
 | 
						|
		const response = await fetch(url);
 | 
						|
		const text = await response.text();
 | 
						|
 | 
						|
		if (gid) return text;
 | 
						|
 | 
						|
		const parsed = archieml.load(text);
 | 
						|
		const str = JSON.stringify(parsed);
 | 
						|
		return str;
 | 
						|
	} catch (err) {
 | 
						|
		throw new Error(err);
 | 
						|
	}
 | 
						|
};
 | 
						|
 | 
						|
(async () => {
 | 
						|
	for (let d of docs) {
 | 
						|
		try {
 | 
						|
			const str = await fetchGoogle(d);
 | 
						|
			const file = `${CWD}/${d.filepath}`;
 | 
						|
			fs.writeFileSync(file, str);
 | 
						|
		} catch (err) {
 | 
						|
			console.log(err);
 | 
						|
		}
 | 
						|
	}
 | 
						|
})(); |