场景是 solo 里发了文章没有同步到 hacpai (老生常谈的问题了啊- - !
然后根据内容 API 开放,欢迎各位独立博客主进行连接这篇文章的内容作了一个同步小脚本
1. 使用跨域模式开启浏览器(以 chrome 为例)
跨域模式开启方法
因为有一个接口调用跨域了,所以要使用跨域模式
2. 获取需要同步的文章 id
接口和对应字段如图
3. 在控制台中执行以下代码
const _ajax = (url, cb, opt) => { $.ajax(Object.assign({ url: url, dataType: 'json', success: cb }, opt)) } const getArticle = ({ id, host }) => { return new Promise((resolve, reject) => { _ajax(`${host}/console/article/${id}`, (data) => resolve(data)) }).then(res => { return { id: id, title: res.article.articleTitle, permalink: res.article.articlePermalink, tags: res.article.articleTags.map(t => t.tagTitle).join(','), content: res.article.articleContent } }) } const getClient = ({ id, host }) => { return new Promise((resolve, reject) => { _ajax(`${host}/console/preference/`, (data) => resolve(data)) }).then(res => { return { key: res.preference.keyOfSolo, title: res.preference.blogTitle, host: host, email: res.preference.adminEmail } }) } const connect = (data) => { return new Promise((resolve, reject) => { _ajax(`https://rhythm.b3log.org/api/article`, (data) => resolve(data), { method: 'post', data: JSON.stringify(data), contentType: 'application/json;charset=utf-8' }) }) } (async function (config) { const article = await getArticle(config) const client = await getClient(config) const result = await connect({ article, client }) console.log(result) })({ id: '这里替换成文章id', host: '这里写你的solo博客的域名,比如我的是https://blog.hduzplus.xyz' })
4. 执行完成后
应该就能同步过来了吧- - (祈祷 🙏
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于