marquetapage 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +22 -0
- data/README.md +17 -0
- data/lib/marquetapage.rb +1 -1
- data/lib/marquetapage/models.rb +0 -4
- data/lib/marquetapage/runner.rb +5 -10
- data/lib/marquetapage/version.rb +3 -1
- data/test/moz_places.schema +0 -1
- data/test/runner_test.rb +1 -4
- data/test/test_helper.rb +5 -3
- metadata +17 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5fe7f2769b658ae8c8d0910bfd8577d0bb26064
|
4
|
+
data.tar.gz: 0997d1f4f1b8b1a1985a63848234e863c787228d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47f8e7e31902e3fdf18b55c2e5f8ee33343d0bb36ba815fde08d24c8a71561200391429d68676150f7db8f6a3e162e503eea55214cc4243d5eda1cc3a0e865d9
|
7
|
+
data.tar.gz: 817fe635d31d60a8ae8d2cd3feb89dad00f704f5dedbcab3011392257b8fd97cd945b24c5fda0d295bb445693b4890d866afe9cc6997da87569b9b6b4c8abfa5
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2015-2016 Laurent Arnoud <laurent@spkdev.net>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
'Software'), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
|
3
3
|
Extract from `places.sqlite` firefox bookmarks with specific tag to JSON format.
|
4
4
|
|
5
|
+
Note: supporting now firefox >= 48, due to [moz_bookmarks_roots
|
6
|
+
removal](https://bugzilla.mozilla.org/show_bug.cgi?id=1143712)
|
7
|
+
|
5
8
|
## Usage
|
6
9
|
|
7
10
|
~~~
|
@@ -31,3 +34,17 @@ bundle exec rake
|
|
31
34
|
* https://github.com/websafe/ffbx
|
32
35
|
* https://wiki.mozilla.org/images/d/d5/Places.sqlite.schema3.pdf
|
33
36
|
* https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Places/Database
|
37
|
+
|
38
|
+
## License
|
39
|
+
|
40
|
+
The MIT License
|
41
|
+
|
42
|
+
Copyright © 2015-2016 Laurent Arnoud <laurent@spkdev.net>
|
43
|
+
|
44
|
+
---
|
45
|
+
[](https://travis-ci.org/spk/marquetapage)
|
46
|
+
[](https://rubygems.org/gems/marquetapage)
|
47
|
+
[](http://www.rubydoc.info/gems/marquetapage)
|
48
|
+
[](http://opensource.org/licenses/MIT "MIT")
|
49
|
+
[](https://codeclimate.com/github/spk/marquetapage)
|
50
|
+
[](http://inch-ci.org/github/spk/marquetapage)
|
data/lib/marquetapage.rb
CHANGED
@@ -3,7 +3,7 @@ require 'sequel'
|
|
3
3
|
# Marquetapage module handle env, db, and db connection
|
4
4
|
module Marquetapage
|
5
5
|
# Get current environment from MARQUETAPAGE_ENV
|
6
|
-
# Default:
|
6
|
+
# Default: production
|
7
7
|
# @return String
|
8
8
|
def self.env
|
9
9
|
ENV['MARQUETAPAGE_ENV'] || 'production'
|
data/lib/marquetapage/models.rb
CHANGED
data/lib/marquetapage/runner.rb
CHANGED
@@ -17,7 +17,7 @@ module Marquetapage
|
|
17
17
|
# @param [ARGV] args must include a tag
|
18
18
|
# @return [Integer] Exit status
|
19
19
|
def run(args)
|
20
|
-
|
20
|
+
raise ArgumentError unless args
|
21
21
|
usage if args.empty?
|
22
22
|
trap_interrupt
|
23
23
|
@tag_name = args.first
|
@@ -28,7 +28,7 @@ module Marquetapage
|
|
28
28
|
|
29
29
|
# Print usage
|
30
30
|
def usage
|
31
|
-
puts 'Usage:
|
31
|
+
puts 'Usage: marquetapage TAG'
|
32
32
|
exit!(1)
|
33
33
|
end
|
34
34
|
|
@@ -71,16 +71,11 @@ module Marquetapage
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def bookmark_place_ids
|
74
|
-
Bookmark.distinct.select(:fk).where(parent:
|
74
|
+
Bookmark.distinct.select(:fk).where(parent: tag_id)
|
75
75
|
end
|
76
76
|
|
77
|
-
def
|
78
|
-
Bookmark.
|
79
|
-
:moz_bookmarks_roots,
|
80
|
-
root_name: 'tags',
|
81
|
-
moz_bookmarks__parent: :moz_bookmarks_roots__folder_id,
|
82
|
-
moz_bookmarks__title: @tag_name
|
83
|
-
).select(:id)
|
77
|
+
def tag_id
|
78
|
+
Bookmark.where(moz_bookmarks__title: @tag_name).select(:id)
|
84
79
|
end
|
85
80
|
end
|
86
81
|
end
|
data/lib/marquetapage/version.rb
CHANGED
data/test/moz_places.schema
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
|
2
2
|
CREATE TABLE moz_bookmarks (id INTEGER PRIMARY KEY,type INTEGER, fk INTEGER DEFAULT NULL, parent INTEGER, position INTEGER, title LONGVARCHAR, keyword_id INTEGER, folder_type TEXT, dateAdded INTEGER, lastModified INTEGER, guid TEXT);
|
3
|
-
CREATE TABLE moz_bookmarks_roots (root_name VARCHAR(16) UNIQUE, folder_id INTEGER);
|
4
3
|
CREATE TABLE moz_keywords (id INTEGER PRIMARY KEY AUTOINCREMENT, keyword TEXT UNIQUE, place_id INTEGER, post_data TEXT);
|
5
4
|
CREATE TABLE moz_favicons (id INTEGER PRIMARY KEY, url LONGVARCHAR UNIQUE, data BLOB, mime_type VARCHAR(32), expiration LONG, guid TEXT);
|
6
5
|
CREATE TABLE moz_annos (id INTEGER PRIMARY KEY,place_id INTEGER NOT NULL,anno_attribute_id INTEGER,mime_type VARCHAR(32) DEFAULT NULL,content LONGVARCHAR, flags INTEGER DEFAULT 0,expiration INTEGER DEFAULT 0,type INTEGER DEFAULT 0,dateAdded INTEGER DEFAULT 0,lastModified INTEGER DEFAULT 0);
|
data/test/runner_test.rb
CHANGED
@@ -16,8 +16,6 @@ describe Marquetapage::Runner do
|
|
16
16
|
@url = 'https://www.mozilla.org/en-US/firefox/central/'
|
17
17
|
place_id = Place.insert url: @url
|
18
18
|
bookmark_root_folder_id = 4
|
19
|
-
BookmarkRoot.insert root_name: 'tags',
|
20
|
-
folder_id: bookmark_root_folder_id
|
21
19
|
tag_id = Bookmark.insert type: 2, fk: nil,
|
22
20
|
parent: bookmark_root_folder_id,
|
23
21
|
title: @tag_name,
|
@@ -34,12 +32,11 @@ describe Marquetapage::Runner do
|
|
34
32
|
end
|
35
33
|
|
36
34
|
it 'with good arg' do
|
37
|
-
out,
|
35
|
+
out, = capture_io do
|
38
36
|
Marquetapage::Runner.run([@tag_name])
|
39
37
|
end
|
40
38
|
out.chomp.must_match @url
|
41
39
|
out.chomp.must_match @content
|
42
|
-
err.chomp.must_equal ''
|
43
40
|
end
|
44
41
|
end
|
45
42
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ENV['MARQUETAPAGE_ENV'] = 'test'.freeze
|
2
4
|
require 'minitest/autorun'
|
3
5
|
require 'marquetapage'
|
4
6
|
require 'marquetapage/runner'
|
5
7
|
|
6
8
|
DB = Marquetapage.sequel_connect
|
7
|
-
%i(places anno_attributes items_annos bookmarks
|
8
|
-
|
9
|
+
%i(places anno_attributes items_annos bookmarks keywords favicons annos
|
10
|
+
historyvisits inputhistory hosts).each do |t|
|
9
11
|
DB.drop_table(:"moz_#{t}") if DB.table_exists?(:"moz_#{t}")
|
10
12
|
end
|
11
13
|
DB.run(File.read(File.expand_path('../moz_places.schema', __FILE__)))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marquetapage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laurent Arnoud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sequel
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '4
|
33
|
+
version: '4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '4
|
40
|
+
version: '4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sqlite3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,75 +53,47 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '5.6'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '5.6'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: minitest-line
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0.6'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0.6'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: inch
|
56
|
+
name: rake
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
86
58
|
requirements:
|
87
59
|
- - "~>"
|
88
60
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
61
|
+
version: '11'
|
90
62
|
type: :development
|
91
63
|
prerelease: false
|
92
64
|
version_requirements: !ruby/object:Gem::Requirement
|
93
65
|
requirements:
|
94
66
|
- - "~>"
|
95
67
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
68
|
+
version: '11'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
70
|
+
name: minitest
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
100
72
|
requirements:
|
101
73
|
- - "~>"
|
102
74
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
75
|
+
version: '5'
|
104
76
|
type: :development
|
105
77
|
prerelease: false
|
106
78
|
version_requirements: !ruby/object:Gem::Requirement
|
107
79
|
requirements:
|
108
80
|
- - "~>"
|
109
81
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
82
|
+
version: '5'
|
111
83
|
- !ruby/object:Gem::Dependency
|
112
84
|
name: rubocop
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
114
86
|
requirements:
|
115
87
|
- - "~>"
|
116
88
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
89
|
+
version: 0.42.0
|
118
90
|
type: :development
|
119
91
|
prerelease: false
|
120
92
|
version_requirements: !ruby/object:Gem::Requirement
|
121
93
|
requirements:
|
122
94
|
- - "~>"
|
123
95
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
96
|
+
version: 0.42.0
|
125
97
|
description: marquetapage
|
126
98
|
email: laurent@spkdev.net
|
127
99
|
executables:
|
@@ -131,6 +103,7 @@ extra_rdoc_files:
|
|
131
103
|
- README.md
|
132
104
|
files:
|
133
105
|
- Gemfile
|
106
|
+
- LICENSE
|
134
107
|
- README.md
|
135
108
|
- bin/marquetapage
|
136
109
|
- lib/marquetapage.rb
|
@@ -152,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
125
|
requirements:
|
153
126
|
- - ">="
|
154
127
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
128
|
+
version: 2.0.0
|
156
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
130
|
requirements:
|
158
131
|
- - ">="
|
@@ -160,10 +133,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
133
|
version: '0'
|
161
134
|
requirements: []
|
162
135
|
rubyforge_project:
|
163
|
-
rubygems_version: 2.
|
136
|
+
rubygems_version: 2.5.1
|
164
137
|
signing_key:
|
165
138
|
specification_version: 4
|
166
139
|
summary: Extract to JSON bookmarks from `places.sqlite` with specific tag
|
167
140
|
test_files:
|
168
141
|
- test/runner_test.rb
|
169
|
-
has_rdoc:
|