storage

package
v0.5.3 Latest Latest
Warning

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

Go to latest
Published: Apr 7, 2018 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Conn is the global websocket connection used to push server notification messages

View Source
var Logger *logrus.Logger

Logger is the global Logger that is used in all packages

Functions

func AddTorrentLocalStorage

func AddTorrentLocalStorage(torrentStorage *storm.DB, local TorrentLocal)

AddTorrentLocalStorage is called when adding a new torrent via any method, requires the boltdb pointer and the torrentlocal struct

func DelTorrentLocalStorage

func DelTorrentLocalStorage(torrentStorage *storm.DB, selectedHash string)

DelTorrentLocalStorage is called to delete a torrent when we fail (for whatever reason to load the information for it). Deleted by HASH matching.

func DelTorrentLocalStorageAndFiles

func DelTorrentLocalStorageAndFiles(torrentStorage *storm.DB, selectedHash string, fileDownloadPath string)

DelTorrentLocalStorageAndFiles deletes the torrent from the database and also attempts to delete the torrent files from the disk as well.

func DeleteRSSFeed

func DeleteRSSFeed(db *storm.DB, RSSFeedURL string)

DeleteRSSFeed grabs old database then recreates it without the deleted RSS Feed

func FetchConfig added in v0.3.0

func FetchConfig(torrentStorage *storm.DB) (Settings.FullClientSettings, error)

FetchConfig fetches the client config from the database

func SaveConfig added in v0.3.0

func SaveConfig(torrentStorage *storm.DB, config Settings.FullClientSettings)

SaveConfig saves the config to the database to compare for changes to settings.toml on restart

func StoreHashHistory

func StoreHashHistory(db *storm.DB, torrentHash string)

StoreHashHistory adds the infohash of all torrents added into the client. The cron job checks this so as not to add torrents from RSS that were already added before

func UpdateJWTTokens added in v0.3.0

func UpdateJWTTokens(db *storm.DB, tokens IssuedTokensList)

UpdateJWTTokens updates the database with new tokens as they are added

func UpdateRSSFeeds

func UpdateRSSFeeds(db *storm.DB, RSSFeed RSSFeedStore)

UpdateRSSFeeds updates the RSS feeds everytime they are changed

func UpdateStorageTick

func UpdateStorageTick(torrentStorage *storm.DB, torrentLocal TorrentLocal)

UpdateStorageTick updates the values in boltdb that should update on every tick (like uploadratio or uploadedbytes, not downloaded since we should have the actual file)

Types

type IssuedTokensList added in v0.3.0

type IssuedTokensList struct {
	ID         int `storm:"id,unique"` //storm requires unique ID (will be 3) to save although there will only be one of these
	SigningKey []byte
	TokenNames []SingleToken
	FirstToken string `storm:omitempty`
}

IssuedTokensList contains a slice of all the tokens issues to applications

func FetchJWTTokens added in v0.3.0

func FetchJWTTokens(db *storm.DB) IssuedTokensList

FetchJWTTokens fetches the stored client authentication tokens

type RSSFeedStore

type RSSFeedStore struct {
	ID       int             `storm:"id,unique"` //storm requires unique ID (will be 1) to save although there will only be one of these
	RSSFeeds []SingleRSSFeed //slice of string containing URL's in string form for gofeed to parse
}

RSSFeedStore stores all of our RSS feeds in a slice of gofeed.Feed

func FetchRSSFeeds

func FetchRSSFeeds(db *storm.DB) RSSFeedStore

FetchRSSFeeds fetches the RSS feed from db, which was setup when initializing database on first startup

type SingleRSSFeed

type SingleRSSFeed struct {
	URL      string `storm:"id,unique"` //the URL of the individual RSS feed
	Name     string
	Torrents []SingleRSSTorrent //name of the torrents
}

SingleRSSFeed stores an RSS feed with a list of all the torrents in the feed

func FetchSpecificRSSFeed

func FetchSpecificRSSFeed(db *storm.DB, RSSFeedURL string) SingleRSSFeed

FetchSpecificRSSFeed pulls one feed from the database to send to the client

type SingleRSSTorrent

type SingleRSSTorrent struct {
	Link    string `storm:"id,unique"`
	Title   string
	PubDate string
}

SingleRSSTorrent stores a single RSS torrent with all the relevant information

type SingleToken added in v0.3.0

type SingleToken struct {
	ClientName string
}

SingleToken stores a single token and all of the associated information

type TorrentFilePriority

type TorrentFilePriority struct {
	TorrentFilePath     string
	TorrentFilePriority string
	TorrentFileSize     int64
}

TorrentFilePriority stores the priority for each file in a torrent

type TorrentHistoryList

type TorrentHistoryList struct {
	ID       int `storm:"id,unique"` //storm requires unique ID (will be 2) to save although there will only be one of these
	HashList []string
}

TorrentHistoryList holds the entire history of downloaded torrents by hash TODO implement a way to read this and maybe grab the name for every torrent as well

func FetchHashHistory

func FetchHashHistory(db *storm.DB) TorrentHistoryList

FetchHashHistory fetches the infohash of all torrents added into the client. The cron job checks this so as not to add torrents from RSS that were already added before

type TorrentLocal

type TorrentLocal struct {
	Hash                string `storm:"id,unique"` //Hash should be unique for every torrent... if not we are re-adding an already added torrent
	InfoBytes           []byte
	DateAdded           string
	StoragePath         string //The absolute value of the path where the torrent will be moved when completed
	TempStoragePath     string //The absolute path of where the torrent is temporarily stored as it is downloaded
	TorrentMoved        bool
	TorrentName         string
	TorrentStatus       string
	TorrentUploadLimit  bool //if true this torrent will bypass the upload storage limit (effectively unlimited)
	MaxConnections      int
	TorrentType         string //magnet or .torrent file
	TorrentFileName     string //Should be just the name of the torrent
	TorrentFile         []byte
	Label               string
	UploadedBytes       int64
	DownloadedBytes     int64
	TorrentSize         int64 //If we cancel a file change the download size since we won't be downloading that file
	UploadRatio         string
	TorrentFilePriority []TorrentFilePriority
}

TorrentLocal is local storage of the torrents for readd on server restart, marshalled into the database using Storm

func FetchAllStoredTorrents

func FetchAllStoredTorrents(torrentStorage *storm.DB) (torrentLocalArray []*TorrentLocal)

FetchAllStoredTorrents is called to read in ALL local stored torrents in the boltdb database (called on server restart)

func FetchTorrentFromStorage

func FetchTorrentFromStorage(torrentStorage *storm.DB, selectedHash string) TorrentLocal

FetchTorrentFromStorage grabs the localtorrent info from the bolt database for usage found by torrenthash

func FetchTorrentsByLabel added in v0.2.0

func FetchTorrentsByLabel(torrentStorage *storm.DB, label string) []TorrentLocal

FetchTorrentsByLabel fetches a list of torrents that have a specific label

Jump to

Keyboard shortcuts

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