diff --git a/02-27-2017.md b/2017-02/02-27-2017.md similarity index 100% rename from 02-27-2017.md rename to 2017-02/02-27-2017.md diff --git a/02-28-2017.md b/2017-02/02-28-2017.md similarity index 100% rename from 02-28-2017.md rename to 2017-02/02-28-2017.md diff --git a/03-01-2017.md b/2017-03/03-01-2017.md similarity index 100% rename from 03-01-2017.md rename to 2017-03/03-01-2017.md diff --git a/03-02-2017.md b/2017-03/03-02-2017.md similarity index 100% rename from 03-02-2017.md rename to 2017-03/03-02-2017.md diff --git a/03-03-2017.md b/2017-03/03-03-2017.md similarity index 100% rename from 03-03-2017.md rename to 2017-03/03-03-2017.md diff --git a/03-04-2017.md b/2017-03/03-04-2017.md similarity index 100% rename from 03-04-2017.md rename to 2017-03/03-04-2017.md diff --git a/03-05-2017.md b/2017-03/03-05-2017.md similarity index 100% rename from 03-05-2017.md rename to 2017-03/03-05-2017.md diff --git a/03-06-2017.md b/2017-03/03-06-2017.md similarity index 100% rename from 03-06-2017.md rename to 2017-03/03-06-2017.md diff --git a/03-07-2017.md b/2017-03/03-07-2017.md similarity index 100% rename from 03-07-2017.md rename to 2017-03/03-07-2017.md diff --git a/03-08-2017.md b/2017-03/03-08-2017.md similarity index 100% rename from 03-08-2017.md rename to 2017-03/03-08-2017.md diff --git a/03-09-2017.md b/2017-03/03-09-2017.md similarity index 100% rename from 03-09-2017.md rename to 2017-03/03-09-2017.md diff --git a/03-10-2017.md b/2017-03/03-10-2017.md similarity index 100% rename from 03-10-2017.md rename to 2017-03/03-10-2017.md diff --git a/03-11-2017.md b/2017-03/03-11-2017.md similarity index 100% rename from 03-11-2017.md rename to 2017-03/03-11-2017.md diff --git a/03-12-2017.md b/2017-03/03-12-2017.md similarity index 100% rename from 03-12-2017.md rename to 2017-03/03-12-2017.md diff --git a/03-13-2017.md b/2017-03/03-13-2017.md similarity index 100% rename from 03-13-2017.md rename to 2017-03/03-13-2017.md diff --git a/03-14-2017.md b/2017-03/03-14-2017.md similarity index 100% rename from 03-14-2017.md rename to 2017-03/03-14-2017.md diff --git a/03-15-2017.md b/2017-03/03-15-2017.md similarity index 100% rename from 03-15-2017.md rename to 2017-03/03-15-2017.md diff --git a/03-16-2017.md b/2017-03/03-16-2017.md similarity index 100% rename from 03-16-2017.md rename to 2017-03/03-16-2017.md diff --git a/03-17-2017.md b/2017-03/03-17-2017.md similarity index 100% rename from 03-17-2017.md rename to 2017-03/03-17-2017.md diff --git a/03-18-2017.md b/2017-03/03-18-2017.md similarity index 100% rename from 03-18-2017.md rename to 2017-03/03-18-2017.md diff --git a/03-19-2017.md b/2017-03/03-19-2017.md similarity index 100% rename from 03-19-2017.md rename to 2017-03/03-19-2017.md diff --git a/03-20-2017.md b/2017-03/03-20-2017.md similarity index 100% rename from 03-20-2017.md rename to 2017-03/03-20-2017.md diff --git a/03-21-2017.md b/2017-03/03-21-2017.md similarity index 100% rename from 03-21-2017.md rename to 2017-03/03-21-2017.md diff --git a/03-22-2017.md b/2017-03/03-22-2017.md similarity index 100% rename from 03-22-2017.md rename to 2017-03/03-22-2017.md diff --git a/03-23-2017.md b/2017-03/03-23-2017.md similarity index 100% rename from 03-23-2017.md rename to 2017-03/03-23-2017.md diff --git a/03-24-2017.md b/2017-03/03-24-2017.md similarity index 100% rename from 03-24-2017.md rename to 2017-03/03-24-2017.md diff --git a/03-25-2017.md b/2017-03/03-25-2017.md similarity index 100% rename from 03-25-2017.md rename to 2017-03/03-25-2017.md diff --git a/03-26-2017.md b/2017-03/03-26-2017.md similarity index 100% rename from 03-26-2017.md rename to 2017-03/03-26-2017.md diff --git a/03-27-2017.md b/2017-03/03-27-2017.md similarity index 100% rename from 03-27-2017.md rename to 2017-03/03-27-2017.md diff --git a/03-28-2017.md b/2017-03/03-28-2017.md similarity index 100% rename from 03-28-2017.md rename to 2017-03/03-28-2017.md diff --git a/03-29-2017.md b/2017-03/03-29-2017.md similarity index 100% rename from 03-29-2017.md rename to 2017-03/03-29-2017.md diff --git a/03-30-2017.md b/2017-03/03-30-2017.md similarity index 100% rename from 03-30-2017.md rename to 2017-03/03-30-2017.md diff --git a/03-31-2017.md b/2017-03/03-31-2017.md similarity index 100% rename from 03-31-2017.md rename to 2017-03/03-31-2017.md diff --git a/04-01-2017.md b/2017-04/04-01-2017.md similarity index 100% rename from 04-01-2017.md rename to 2017-04/04-01-2017.md diff --git a/04-02-2017.md b/2017-04/04-02-2017.md similarity index 100% rename from 04-02-2017.md rename to 2017-04/04-02-2017.md diff --git a/04-03-2017.md b/2017-04/04-03-2017.md similarity index 100% rename from 04-03-2017.md rename to 2017-04/04-03-2017.md diff --git a/04-04-2017.md b/2017-04/04-04-2017.md similarity index 100% rename from 04-04-2017.md rename to 2017-04/04-04-2017.md diff --git a/main.go b/main.go index eef5633..8f33b87 100644 --- a/main.go +++ b/main.go @@ -16,9 +16,10 @@ import ( ) const ( - REDDIT_URL string = "https://www.reddit.com/r/" - USER_AGENT string = "top-of-reddit:bot" - DATE_FORMAT string = "01-02-2006" + REDDIT_URL string = "https://www.reddit.com/r/" + USER_AGENT string = "top-of-reddit:bot" + DATE_FORMAT string = "01-02-2006" + FOLDER_DATE_FORMAT string = "2006-01" ) var ( @@ -94,10 +95,19 @@ func getTodayBucket() []byte { return []byte(time.Now().Format(DATE_FORMAT)) } +// get time object of yesterday +func getYesterdayTime() time.Time { + return time.Now().AddDate(0, 0, -1) +} + // returns the post bucket for yesterday func getYesterdayBucket() []byte { - yesterday := time.Now().AddDate(0, 0, -1) - return []byte(yesterday.Format(DATE_FORMAT)) + return []byte(getYesterdayTime().Format(DATE_FORMAT)) +} + +// returns date string for folder name +func getFolderName() string { + return getYesterdayTime().Format(FOLDER_DATE_FORMAT) } func checkDateChange(db *bolt.DB) { @@ -114,7 +124,7 @@ func checkDateChange(db *bolt.DB) { // if day turns over if storedDay == nil || string(getTodayBucket()) != string(storedDay) { // set today's date in database - err := b.Put(TODAY_KEY, []byte(getTodayBucket())) + err := b.Put(TODAY_KEY, getTodayBucket()) if err != nil { return err @@ -157,8 +167,15 @@ func checkDateChange(db *bolt.DB) { } func writePostsToFile(fileName string, posts []RedditPost) error { + folderName := getFolderName() + + // create directory if not exists + if _, err := os.Stat(folderName); os.IsNotExist(err) { + os.Mkdir(folderName, 0700) + } + // create new markdown file - file, err := os.Create(fileName + ".md") + file, err := os.Create(getFolderName() + "/" + fileName + ".md") defer file.Close() if err != nil { @@ -201,7 +218,6 @@ func getStoredPosts(db *bolt.DB, bucket []byte, day []byte) ([]RedditPost, error tempPost := RedditPost{} err := json.Unmarshal(v, &tempPost) posts = append(posts, tempPost) - sort.Sort(ByScore(posts)) if err != nil { return err @@ -213,6 +229,9 @@ func getStoredPosts(db *bolt.DB, bucket []byte, day []byte) ([]RedditPost, error return nil }) + // sort posts by score + sort.Sort(ByScore(posts)) + if err != nil { return []RedditPost{}, err }