redditmongo

package module
v1.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2024 License: GPL-3.0 Imports: 8 Imported by: 0

README

Reddit Mongo

Description

Scraps a particular subreddit and saves its posts to a mongodb

Install

go get github.com/jarivas/redditmongo

Usage

.env

REDDIT_USERNAME=reddit_bot
REDDIT_PASSWORD=snoo
REDDIT_CLIENT_ID=p-jcoLKBynTLew
REDDIT_APP_SECRET=gko_LXELoV07ZBNUXrvWZfzE3aI
REDDIT_TIME_SLEEP=30s
MONGO_PORT=27017
MONGO_PORT_UI=8081
MONGO_DB_NAME=reddit
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=example

demo.go

package demo

import (
	"github.com/jarivas/redditmongo"
    "log"
)

func main() {
	rm, err := RedditMongo{}.FromEnv("redditdev")

	if err != nil {
		log.Fatal(err)
	}

	e := make(chan error)

	go rm.Scrape(e)

	for err = range(e) {
		log.Fatal(err)
	}
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MongoStorage added in v1.0.6

type MongoStorage struct {
	// contains filtered or unexported fields
}

func (*MongoStorage) CreateCollection added in v1.0.6

func (m *MongoStorage) CreateCollection(name string) error

func (MongoStorage) FromEnv added in v1.0.6

func (m MongoStorage) FromEnv() (*MongoStorage, error)

func (*MongoStorage) GetCollection added in v1.0.6

func (m *MongoStorage) GetCollection(name string) *mgm.Collection

func (MongoStorage) New added in v1.0.6

func (m MongoStorage) New(url, dbName string) (*MongoStorage, error)

func (*MongoStorage) ResetColection added in v1.0.6

func (m *MongoStorage) ResetColection(name string) error

type Post

type Post struct {
	mgm.DefaultModel `bson:",inline"`
	Id               string `json:"id" bson:"id"`
	Title            string `json:"title" bson:"title"`
	Body             string `json:"body" bson:"body"`
	// contains filtered or unexported fields
}

func (*Post) CheckExists

func (p *Post) CheckExists(m *MongoStorage) (bool, error)

func (Post) FromScraped

func (p Post) FromScraped(post *redditscraper.Post, subreddit string) *Post

func (Post) GetLast added in v1.0.9

func (p Post) GetLast(m *MongoStorage, subreddit string) (*Post, error)

func (*Post) Save

func (p *Post) Save(m *MongoStorage) error

func (*Post) Validate

func (p *Post) Validate() bool

type RedditMongo

type RedditMongo struct {
	Subreddit string
	// contains filtered or unexported fields
}

func (RedditMongo) FromEnv added in v1.0.2

func (rm RedditMongo) FromEnv(subreddit string) (*RedditMongo, error)

func (RedditMongo) New added in v1.0.2

func (*RedditMongo) Scrape added in v1.0.2

func (rm *RedditMongo) Scrape(e chan<- error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL