require channel name, read channel ids from file
This commit is contained in:
parent
4942de8992
commit
af01d1626d
5 changed files with 48 additions and 23 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,4 +1,4 @@
|
|||
/.idea
|
||||
/lbry
|
||||
/vendor
|
||||
tmp.sh
|
||||
/tmp.sh
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
|
||||
func init() {
|
||||
var ytSyncCmd = &cobra.Command{
|
||||
Use: "ytsync <youtube_api_key> <youtube_channel_id> [<lbry_channel_name>]",
|
||||
Use: "ytsync <youtube_api_key> <lbry_channel_name> [<youtube_channel_id>]",
|
||||
Args: cobra.RangeArgs(2, 3),
|
||||
Short: "Publish youtube channel into LBRY network.",
|
||||
Run: ytsync,
|
||||
|
@ -21,7 +21,7 @@ func init() {
|
|||
RootCmd.AddCommand(ytSyncCmd)
|
||||
}
|
||||
|
||||
const defaultMaxTries = 1
|
||||
const defaultMaxTries = 3
|
||||
|
||||
var (
|
||||
stopOnError bool
|
||||
|
@ -31,14 +31,15 @@ var (
|
|||
|
||||
func ytsync(cmd *cobra.Command, args []string) {
|
||||
ytAPIKey := args[0]
|
||||
channelID := args[1]
|
||||
lbryChannelName := ""
|
||||
lbryChannelName := args[1]
|
||||
if string(lbryChannelName[0]) != "@" {
|
||||
log.Errorln("LBRY channel name must start with an @")
|
||||
return
|
||||
}
|
||||
|
||||
channelID := ""
|
||||
if len(args) > 2 {
|
||||
lbryChannelName = args[2]
|
||||
if string(lbryChannelName[0]) != "@" {
|
||||
log.Errorln("LBRY channel name must start with an @")
|
||||
return
|
||||
}
|
||||
channelID = args[2]
|
||||
}
|
||||
|
||||
if stopOnError && maxTries != defaultMaxTries {
|
||||
|
@ -61,6 +62,7 @@ func ytsync(cmd *cobra.Command, args []string) {
|
|||
}
|
||||
|
||||
err := s.FullCycle()
|
||||
|
||||
if err != nil {
|
||||
if wrappedError, ok := err.(*errors.Error); ok {
|
||||
log.Error(wrappedError.Error() + "\n" + string(wrappedError.Stack()))
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
- make sure you don't have a `.lbryum/wallets/default_wallet`
|
||||
- delete existing wallet if there's nothing you need there, or better yet, move it somewhere else in case you need it later
|
||||
- make sure daemon is stopped and can be controlled with `systemctl`
|
||||
- run `lbry ytsync YOUTUBE_KEY YOUTUBE_CHANNEL_ID LBRY_CHANNEL_NAME --max-tries=5`
|
||||
- `max-tries` will retry errors that you will probably get (e.g. failed publishes)
|
||||
- run `lbry ytsync YOUTUBE_KEY LBRY_CHANNEL_NAME YOUTUBE_CHANNEL_ID`
|
||||
- after sync is complete, daemon will be stopped and wallet will be moved to `~/wallets/`
|
||||
- now mark content as synced in doc
|
||||
|
||||
|
|
|
@ -28,12 +28,9 @@ func (s *Sync) walletSetup() error {
|
|||
}
|
||||
log.Debugf("Source channel has %d videos", numOnSource)
|
||||
|
||||
numPublished := uint64(0)
|
||||
if s.LbryChannelName != "" {
|
||||
numPublished, err = s.daemon.NumClaimsInChannel(s.LbryChannelName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
numPublished, err := s.daemon.NumClaimsInChannel(s.LbryChannelName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
log.Debugf("We already published %d videos", numPublished)
|
||||
|
||||
|
@ -88,11 +85,9 @@ func (s *Sync) walletSetup() error {
|
|||
return err
|
||||
}
|
||||
|
||||
if s.LbryChannelName != "" {
|
||||
err = s.ensureChannelOwnership()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = s.ensureChannelOwnership()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
balanceResp, err = s.daemon.WalletBalance()
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package ytsync
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
|
@ -69,6 +70,14 @@ func (s *Sync) FullCycle() error {
|
|||
return errors.New("no $HOME env var found")
|
||||
}
|
||||
|
||||
if s.YoutubeChannelID == "" {
|
||||
channelID, err := getChannelIDFromFile(s.LbryChannelName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
s.YoutubeChannelID = channelID
|
||||
}
|
||||
|
||||
defaultWalletDir := os.Getenv("HOME") + "/.lbryum/wallets/default_wallet"
|
||||
walletBackupDir := os.Getenv("HOME") + "/wallets/" + strings.Replace(s.LbryChannelName, "@", "", 1)
|
||||
|
||||
|
@ -341,3 +350,23 @@ func stopDaemonViaSystemd() error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func getChannelIDFromFile(channelName string) (string, error) {
|
||||
channelsJSON, err := ioutil.ReadFile("./channels")
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, 0)
|
||||
}
|
||||
|
||||
var channels map[string]string
|
||||
err = json.Unmarshal(channelsJSON, &channels)
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, 0)
|
||||
}
|
||||
|
||||
channelID, ok := channels[channelName]
|
||||
if !ok {
|
||||
return "", errors.New("channel not in list")
|
||||
}
|
||||
|
||||
return channelID, nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue