代码拉取完成,页面将自动刷新
同步操作将从 NULL/youtube2toutiao 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package main
import (
"flag"
"fmt"
"github.com/rs/zerolog/log"
"os"
"toutiao/admin"
"toutiao/downloader"
"toutiao/tools"
"toutiao/translator"
)
type A struct {
year int
}
func (a A) Greet() { fmt.Println("Hello GolangUK", a.year) }
type B struct {
A
}
func (b B) Greet() { fmt.Println("Welcome to GolangUK", b.year) }
var dao = &translator.YouDao{
AppKey: "6a0f0aec8e860c65",
SecKey: "vTrsGcDDmD0X6RIUUpCi0oEGazF30BOz",
}
var id = flag.String("url", "BV1K741137fi", "请输入一个 youtube 地址")
func main() {
flag.Parse()
if *id == "" {
log.Fatal().Msg("请输入要下载的 url, --url=Szw_1B-IBcs")
}
ok, video := downloader.Download(*id)
if !ok {
log.Error().Msg("下载源文件出错")
os.Exit(1)
}
// 分析标题和内容
// todo 可以扩展string 自由调用吗
fmt.Println(video.Title)
video.Title = translator.Translate(dao, video.Title)
video.Desc = translator.Translate(dao, video.Desc)
video.Title = tools.CutByUtf8(video.Title, 30)
video.Desc = tools.CutByUtf8(video.Desc, 300)
// 文件准备完成
admin.LoadUserInfo()
md5Resp := admin.Md5Check(video.Md5)
if !md5Resp.IsUniq {
log.Warn().Msgf("Video Already use in [%s]", md5Resp.Data)
return
}
videoapi := admin.VideoApi()
log.Warn().Msgf("video/api: %v", videoapi)
admin.VideoLogStart(&video, videoapi)
uploadResponse := admin.VideoUpload(&video, videoapi)
log.Warn().Msgf("uploadResponse: %v", uploadResponse)
admin.VideoLogSueecss(uploadResponse, videoapi, &video)
admin.ArticlePost(video, videoapi, uploadResponse)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。