update assests

This commit is contained in:
Simon Frostick 2018-03-09 08:14:50 +02:00
commit 520eb419c7
7 changed files with 52 additions and 28 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,7 @@
package cmd
import (
"fmt"
nurl "net/url"
"strings"
"time"
@ -59,8 +60,14 @@ func addBookmark(base model.Bookmark, offline bool) (book model.Bookmark, err er
// Prepare initial result
book = base
// Make sure URL valid
parsedURL, err := nurl.ParseRequestURI(book.URL)
if err != nil || parsedURL.Host == "" {
return book, fmt.Errorf("URL is not valid")
}
// Clear UTM parameters from URL
book.URL, err = clearUTMParams(book.URL)
book.URL, err = clearUTMParams(parsedURL)
if err != nil {
return book, err
}
@ -101,14 +108,9 @@ func normalizeSpace(str string) string {
return strings.Join(strings.Fields(str), " ")
}
func clearUTMParams(uri string) (string, error) {
tempURL, err := nurl.Parse(uri)
if err != nil {
return "", err
}
func clearUTMParams(url *nurl.URL) (string, error) {
newQuery := nurl.Values{}
for key, value := range tempURL.Query() {
for key, value := range url.Query() {
if strings.HasPrefix(key, "utm_") {
continue
}
@ -116,6 +118,6 @@ func clearUTMParams(uri string) (string, error) {
newQuery[key] = value
}
tempURL.RawQuery = newQuery.Encode()
return tempURL.String(), nil
url.RawQuery = newQuery.Encode()
return url.String(), nil
}

View file

@ -15,7 +15,7 @@ func TestAddBookMark(t *testing.T) {
}{
{
model.Bookmark{},
true, "URL must not be empty",
true, "URL is not valid",
},
{
model.Bookmark{
@ -23,7 +23,6 @@ func TestAddBookMark(t *testing.T) {
},
true, "Title must not be empty",
},
{model.Bookmark{URL: "foo", Title: "Foo"}, true, ""},
{
model.Bookmark{
URL: "https://github.com/RadhiFadlillah/shiori",

View file

@ -16,6 +16,7 @@ var (
Long: "Show the saved bookmarks by its DB index. " +
"Accepts space-separated list of indices (e.g. 5 6 23 4 110 45), hyphenated range (e.g. 100-200) or both (e.g. 1-3 7 9). " +
"If no arguments, all records with actual index from DB are shown.",
Aliases: []string{"list", "ls"},
Run: func(cmd *cobra.Command, args []string) {
// Read flags
useJSON, _ := cmd.Flags().GetBool("json")

View file

@ -2,6 +2,7 @@ package cmd
import (
"fmt"
nurl "net/url"
"strconv"
"strings"
"sync"
@ -100,10 +101,18 @@ func init() {
func updateBookmarks(indices []string, base model.Bookmark, offline, overwrite bool) ([]model.Bookmark, error) {
mutex := sync.Mutex{}
// Clear UTM parameters from URL
url, err := clearUTMParams(base.URL)
if err != nil {
return []model.Bookmark{}, err
if base.URL != "" {
// Make sure URL valid
parsedURL, err := nurl.ParseRequestURI(base.URL)
if err != nil || parsedURL.Host == "" {
return []model.Bookmark{}, fmt.Errorf("URL is not valid")
}
// Clear UTM parameters from URL
base.URL, err = clearUTMParams(parsedURL)
if err != nil {
return []model.Bookmark{}, err
}
}
// Read bookmarks from database
@ -116,8 +125,8 @@ func updateBookmarks(indices []string, base model.Bookmark, offline, overwrite b
return []model.Bookmark{}, fmt.Errorf("No matching index found")
}
if url != "" && len(bookmarks) == 1 {
bookmarks[0].URL = url
if base.URL != "" && len(bookmarks) == 1 {
bookmarks[0].URL = base.URL
}
// If not offline, fetch articles from internet
@ -201,6 +210,7 @@ func updateBookmarks(indices []string, base model.Bookmark, offline, overwrite b
}
bookmarks[i].Tags = newTags
bookmarks[i].Modified = time.Now().UTC().Format("2006-01-02 15:04:05")
}
result, err := DB.UpdateBookmarks(bookmarks)

View file

@ -379,7 +379,7 @@ func (db *SQLiteDatabase) SearchBookmarks(orderLatest bool, keyword string, tags
FROM bookmark ` + whereClause
if orderLatest {
query += ` ORDER BY modified DESC`
query += ` ORDER BY id DESC`
}
bookmarks := []model.Bookmark{}
@ -432,7 +432,7 @@ func (db *SQLiteDatabase) UpdateBookmarks(bookmarks []model.Bookmark) (result []
// Prepare statement
stmtUpdateBookmark, err := db.Preparex(`UPDATE bookmark SET
url = ?, title = ?, image_url = ?, excerpt = ?, author = ?,
min_read_time = ?, max_read_time = ? WHERE id = ?`)
min_read_time = ?, max_read_time = ?, modified = ? WHERE id = ?`)
checkError(err)
stmtUpdateBookmarkContent, err := db.Preparex(`UPDATE bookmark_content SET
@ -461,6 +461,7 @@ func (db *SQLiteDatabase) UpdateBookmarks(bookmarks []model.Bookmark) (result []
book.Author,
book.MinReadTime,
book.MaxReadTime,
book.Modified,
book.ID)
stmtUpdateBookmarkContent.MustExec(

View file

@ -522,10 +522,8 @@
app.searchTag(tag);
},
bookmarkTime: function (book) {
var time = book.modified,
readTime = "",
finalBookmarkTime = "";
// Define read time
var readTime = "";
if (book.maxReadTime === 0) {
readTime = "";
} else if (book.minReadTime === book.maxReadTime) {
@ -534,7 +532,20 @@
readTime = book.minReadTime + "-" + book.maxReadTime + " min read";
}
finalBookmarkTime = "Updated " + time;
// Convert modified time to local
var time = new Date(book.modified.replace(/-/g, '/') + ' +00');
// Create final time
var month = ("00" + (time.getMonth() + 1)).slice(-2),
date = ("00" + time.getDate()).slice(-2),
hours = ("00" + time.getHours()).slice(-2),
minutes = ("00" + time.getMinutes()).slice(-2),
seconds = ("00" + time.getSeconds()).slice(-2);
var finalBookmarkTime = "Updated " +
time.getFullYear() + "-" + month + "-" + date + " " +
hours + ":" + minutes + ":" + seconds;
if (readTime !== "") finalBookmarkTime += " \u00B7 " + readTime;
return finalBookmarkTime;