Skip to content

Commit

Permalink
read parameters from cli
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmdrz committed Mar 7, 2019
1 parent 1858681 commit b41330b
Showing 1 changed file with 51 additions and 47 deletions.
98 changes: 51 additions & 47 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,78 +16,82 @@ import (

func main() {
var (
username string
password string

// TODO: get these values from parameters
username string
password string
delay = 1
limit = 300
usersLimit = 300
listenAddr = "localhost:8080"
g = graph.New()
showLast = false
)
username = os.Getenv("INSTA_USERNAME")
password = os.Getenv("INSTA_PASSWORD")
if username == "" && password == "" {
flag.StringVar(&username, "username", "", "Instagram username")
flag.StringVar(&password, "password", "", "Instagram password")
flag.IntVar(&limit, "limit", 300, "How many users should be scan in firsth depth of your followings")
flag.IntVar(&usersLimit, "users-limit", 300, "Max users in each followings to scan")
flag.IntVar(&delay, "delay", 1, "Sleep between each following")
flag.BoolVar(&showLast, "latest", false, "Use the latest genereted json file.")
flag.Parse()
}
g := graph.New()

var instance *instagram.Instagram
if fileExists(username + ".json") {
var err error
log.Printf("Loading instagram as %s ...", username)
instance, err = instagram.Import(username + ".json")
if err != nil {
log.Fatal(err)
return
}
} else {
var err error
log.Printf("Connecting to instagram as %s ...", username)
instance, err = instagram.New(username, password)
if err != nil {
log.Fatal(err)
return
if !showLast {
var instance *instagram.Instagram
if fileExists(username + ".json") {
var err error
log.Printf("Loading instagram as %s ...", username)
instance, err = instagram.Import(username + ".json")
if err != nil {
log.Fatal(err)
return
}
} else {
var err error
log.Printf("Connecting to instagram as %s ...", username)
instance, err = instagram.New(username, password)
if err != nil {
log.Fatal(err)
return
}
log.Printf("Connected !")

instance.Export(username + ".json")
}
log.Printf("Connected !")

instance.Export(username + ".json")
}
log.Printf("Fetching followings ...")
followings := instance.Followings()
shuffle(followings)

log.Printf("Fetching followings ...")
followings := instance.Followings()
shuffle(followings)
if limit == -1 {
limit = len(followings)
}

if limit == -1 {
limit = len(followings)
}
for i, user := range followings {
if i >= limit {
log.Println("Reached to limit.")
break
}

// TODO: open a file and write instead of saving data on memory
for i, user := range followings {
if i >= limit {
log.Println("Reached to limit.")
break
}
log.Printf("Scaning (%04d/%04d) user %s ...", i, limit, user.Username)

log.Printf("Scaning (%04d/%04d) user %s ...", i, limit, user.Username)
users := user.Followings(instance)
if len(users) > usersLimit {
users = users[:usersLimit]
}
shuffle(users)

users := user.Followings(instance)
if len(users) > usersLimit {
users = users[:usersLimit]
}
shuffle(users)
for _, target := range users {
g.AddConnection(user.Username, target.Username)
}

for _, target := range users {
g.AddConnection(user.Username, target.Username)
time.Sleep(time.Duration(delay) * time.Second)
}

time.Sleep(time.Duration(delay) * time.Second)
ioutil.WriteFile("static/data.json", g.Marshall(), 0755)
}

ioutil.WriteFile("static/data.json", g.Marshall(), 0755)

handler := http.NewServeMux()
handler.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
bytes, err := ioutil.ReadFile("static/index.html")
Expand Down

0 comments on commit b41330b

Please sign in to comment.