Code Monkey home page Code Monkey logo

Comments (7)

ahmdrz avatar ahmdrz commented on August 22, 2024

Hi
You have to use paginations.
Pass next_max_id from result to the function parameter.

Regards.

from goinsta.

evandropp avatar evandropp commented on August 22, 2024

Hi @ahmdrz
i read in documentation that this function return latest page.
But i dont understand how i can get next_max_id. Can you help me?

tks.

from goinsta.

evandropp avatar evandropp commented on August 22, 2024

i find a way. Getting the last ID and calling func again in a loop. Ok tks. Closed.

from goinsta.

ahmdrz avatar ahmdrz commented on August 22, 2024

If you have any problem , feel free and ask us.

from goinsta.

icholy avatar icholy commented on August 22, 2024

@ahmdrz I'm having trouble with this too.

func PrintUserFeed(client *goinsta.Instagram, userID int64) error {
	var maxID string
	for {
		resp, err := client.UserFeed(userID, maxID, "")
		if err != nil {
			return err
		}
		if resp.Status != "ok" {
			return errors.New(resp.Status)
		}
		if !resp.MoreAvailable {
			break
		}
		fmt.Fprintf(
			os.Stderr, "MaxID: %s, NextMaxID: %s, Status: %s, MoreAvailable: %t, NumResults: %d\n",
			maxID,
			resp.NextMaxID,
			resp.Status,
			resp.MoreAvailable,
			resp.NumResults,
		)
		maxID = resp.NextMaxID
	}
	return nil
}

Output (I've replaced the userID with 00000):

MaxID: , NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18
MaxID: 1622873799240689451_00000, NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18
MaxID: 1622873799240689451_00000, NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18
MaxID: 1622873799240689451_00000, NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18
MaxID: 1622873799240689451_00000, NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18
MaxID: 1622873799240689451_00000, NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18
MaxID: 1622873799240689451_00000, NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18
MaxID: 1622873799240689451_00000, NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18
MaxID: 1622873799240689451_00000, NextMaxID: 1622873799240689451_00000, Status: ok, MoreAvailable: true, NumResults: 18

It keeps returning the same thing even though I'm sending a different maxID

from goinsta.

icholy avatar icholy commented on August 22, 2024

NVM, I was using an old version /facepalm...

from goinsta.

ahmdrz avatar ahmdrz commented on August 22, 2024

@icholy Hello my friend.
Sorry for late answering. Honestly I was busy.

I wrote small program.

package main

import (
	"log"

	"github.com/ahmdrz/goinsta"
)

func main() {
	insta := goinsta.New("***", "***")
	if err := insta.Login(); err != nil {
		log.Println(err)
		return
	}
	defer insta.Logout()

	userPage, err := insta.GetUserByID(insta.LoggedInUser.ID)
	if err != nil {
		log.Println(err)
		return
	}

	log.Printf("user %s has %d posts", userPage.User.FullName, userPage.User.MediaCount)

	var maxID string
	for {
		resp, err := insta.UserFeed(insta.LoggedInUser.ID, maxID, "")
		if err != nil {
			log.Println(err)
			break
		}
		log.Printf(
			"Status: %s, MoreAvailable: %t, NumResults: %d\n",
			resp.Status,
			resp.MoreAvailable,
			resp.NumResults,
		)
		userPage.User.MediaCount -= resp.NumResults

		if !resp.MoreAvailable {
			log.Println("no posts are available")
			break
		}
		maxID = resp.NextMaxID
	}

	if userPage.User.MediaCount != 0 {
		log.Println("can not get all of posts")
	} else {
		log.Println("all of user's posts scanned !")
	}
}

And it works.

As you said I was using an old version , I have same opinion.

Good luck.

from goinsta.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.