npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jinsta

v0.0.38

Published

javascript + instagram + flow

Downloads

47

Readme

jinsta

special thanks to @timgrossmann for creating instapy !! (:

check out our discord channel and chat me there to get an invite for the channel :)

this bot is experimental!
unfortunately this approach doesnt seem to lower the blocks and bans of instagram bots. dont use this bot if you search for a stable one.

getting started basic

  • install nodejs
  • open the terminal
  • npm install -g jinsta
  • jinsta -u instagram_username -p instagram_password -w workspace_path
    • the -w parameter could be ./jinsta_data for example
    • jinsta will save log files and session data in this folder
  • run jinsta --help for additional information

update

  • npm update -g jinsta

advanced configuration

example index.js

  • install nodejs
  • open the terminal and create a new folder
    • the name the folder must be different than 'jinsta'
  • npm init -y
  • npm install jinsta
  • create a new file index.js

plain javascript

var jinsta = require('jinsta');

var setup = jinsta.default;
var Config = jinsta.Config;
var timeline = jinsta.timeline;
var hashtag = jinsta.hashtag;
var storyMassView = jinsta.storyMassView;

var config = new Config(
	'instagram_username',
	'instagram_password',
	'workspace_path' // like './jinsta_data'
);

var massview = true;

// have a look at https://github.com/breuerfelix/jinsta/blob/master/src/core/config.ts for an example
config.likeLimit = 30;
// you can edit every property you want
// just do it like we change the keywords here
config.keywords = [ 'vegan', 'climate', 'sports' ];

setup(config).then(function(client) {
	if (massview) {
		storyMassView(client, config);
	}

	if (config.tags.length) {
		// run hashtag feed
		hashtag(client, config);
	} else {
		// run timeline feed
		timeline(client, config);
	}
});
  • node index.js to start the bot

es6 javascript

import {
	setup,
	Config,
	hashtag,
	timeline,
	storyMassView,
} from 'jinsta';

async function main() {
	const workspace = './workspace';

	const { IG_USERNAME, IG_PASSWORD } = process.env;
	const config = new Config(
		IG_USERNAME,
		IG_PASSWORD,
		workspace,
	);

	const massview = false;
	//config.tags = ['vegan', 'world'];
	//config.likeLimit = 10;

	const client = await setup(config);

	if (massview) {
		await storyMassView(client, config);
	}

	if (config.tags.length) {
		// run hashtag feed
		await hashtag(client, config);
	} else {
		// run timeline feed
		await timeline(client, config);
	}
}

main();

proxy

if you're running jinsta on a server in the internet or in a cloud environment it could be really helpful to use a proxy, so it is not that easy for instagram to catch you up. if you are running jinsta from home this may not be needed.

there are two ways to achieve this:

  1. append --proxy ip.ip.ip.ip:port on the commandline
  2. set following configuration in the advanced configuration: config.proxy = 'ip.ip.ip.ip:port'

like by hashtag

the bot will go through all tags and split the like limit randomly between given tags.

simple: jinsta --tags climate vegan sport --likeLimit 10

advanced:

// the bot will like 10 images with the hashtag vegan
// and then 10 images with the hashtag climate
config.likeLimit = 10;
config.tags = ['vegan', 'climate', 'sport'];

contribute

  • clone this repo
  • npm install
  • create a file named .env in the root folder
IG_USERNAME=instagram_username
IG_PASSWORD=instagram_password
  • npm run dev to start the bot

additional information / helpful another projects

  • jinsta_starter: helpful for scheduling jinsta, e.g. on a raspberry pi at home

we love lowercase