hexo-seo-autopush
Version:
Daily automatic submission of urls to baidu and Google bing
64 lines (58 loc) • 1.79 kB
JavaScript
const request = require('request')
const { google } = require('googleapis')
const fs = require('fs')
const readline = require('readline')
const { join } = require('path')
try {
const UrlsFile = join(process.cwd(), 'google.txt')
const [client_email, private_key] = process.argv.splice(2)
function readFileToArr(fReadName) {
return new Promise((resolve, reject) => {
try {
const fRead = fs.createReadStream(fReadName, 'utf8')
const objReadline = readline.createInterface({ input: fRead })
const arr = new Array()
objReadline.on('line', (line) => arr.push(line))
objReadline.on('close', () => resolve(arr))
} catch (error) {
reject(error)
}
})
}
const jwtClient = new google.auth.JWT(
client_email,
null,
private_key.replace(/(\\|\\\\)n/g, '\n'),
['https://www.googleapis.com/auth/indexing'],
null
)
jwtClient
.authorize()
.then((tokens) => {
readFileToArr(UrlsFile)
.then((data) => {
for (let i = 0; i < data.length; i++) {
const options = {
url: 'https://indexing.googleapis.com/v3/urlNotifications:publish',
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
auth: { bearer: tokens.access_token },
json: {
url: data[i],
type: 'URL_UPDATED'
}
}
request(options, function (error, response, body) {
console.log('Google response: ', body)
})
}
})
.catch((error) => console.error(error))
})
.catch((error) => console.error(error))
} catch (error) {
console.error(error)
}