vnews 0.0.6 → 0.0.7

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.
data/lib/vnews/display.rb CHANGED
@@ -132,8 +132,10 @@ class Vnews
132
132
  @sqliteclient.star_item guid, false
133
133
  end
134
134
 
135
- def delete_item(guid)
136
- @sqliteclient.delete_item guid
135
+ def delete_items(*guids)
136
+ guids.each do |guid|
137
+ @sqliteclient.delete_item guid
138
+ end
137
139
  end
138
140
 
139
141
  def search_items(window_width, term)
data/lib/vnews/feed.rb CHANGED
@@ -41,10 +41,10 @@ class Vnews
41
41
  Vnews.sql_client.insert_feed(f[:meta][:title], feed_url, f[:meta][:link], folder)
42
42
  end
43
43
  f[:items].each do |item|
44
+ item[:pub_date] ||= Time.now
44
45
  if item[:guid].nil? || item[:guid].strip == ''
45
- item[:guid] = [f[:meta][:link], item[:link]].join("+")
46
+ item[:guid] = [ f[:meta][:link], item[:link], item[:pub_date] ].join("+")
46
47
  end
47
- item[:pub_date] ||= Time.now
48
48
  Vnews.sql_client.insert_item item.merge(:feed => feed_url, :feed_title => f[:meta][:title])
49
49
  $stderr.print "."
50
50
  end
data/lib/vnews/sql.rb CHANGED
@@ -97,8 +97,8 @@ class Vnews
97
97
  def feeds(order)
98
98
  if order == 0
99
99
  # "feeds.title asc"
100
- @client.query("SELECT feeds.*, count(*) as item_count from feeds
101
- inner join items i on i.feed = feeds.feed_url
100
+ @client.query("SELECT feeds.*, count(i.unread) as item_count from feeds
101
+ left outer join items i on i.feed = feeds.feed_url
102
102
  where i.unread = true
103
103
  group by feeds.feed_url
104
104
  order by feeds.title asc")
@@ -148,7 +148,7 @@ class Vnews
148
148
 
149
149
  "SELECT items.title, items.guid, items.feed,
150
150
  items.feed_title, items.pub_date, items.word_count, items.starred, items.unread from items
151
- inner join feeds_folders ff on ff.feed = items.feed
151
+ left join feeds_folders ff on ff.feed = items.feed
152
152
  where ff.folder = '#{e folder}' order by items.pub_date asc"
153
153
  end
154
154
  @client.query query
@@ -160,7 +160,7 @@ class Vnews
160
160
 
161
161
  if inc_read_count
162
162
  # increment the read count for the feed
163
- @client.query "UPDATE feeds set num_items_read = num_items_read + 1 where feed_url = (select feed from items where items.guid = '#{e guid}')"
163
+ @client.query "UPDATE feeds set num_items_read = num_items_read + 1 where feed_url = (select feed from items where items.guid = '#{e guid}' limit 1)"
164
164
  end
165
165
 
166
166
  query = "SELECT items.* from items where guid = '#{e guid}'"
data/lib/vnews/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  class Vnews
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
4
4
 
data/lib/vnews.vim CHANGED
@@ -19,7 +19,7 @@ let s:list_feed_items_command = s:client_script . 'feed_items '
19
19
  let s:show_item_command = s:client_script . 'show_item '
20
20
  let s:star_item_command = s:client_script . 'star_item ' " + guid star(bool)
21
21
  let s:unstar_item_command = s:client_script . 'unstar_item ' " + guid star(bool)
22
- let s:delete_item_command = s:client_script . 'delete_item ' " + guid
22
+ let s:delete_items_command = s:client_script . 'delete_items ' " + guids
23
23
  let s:search_items_command = s:client_script . 'search_items '
24
24
  let s:cat_items_command = s:client_script . 'cat_items '
25
25
 
@@ -378,20 +378,21 @@ endfunction
378
378
  "------------------------------------------------------------------------
379
379
  " DELETE ITEMS
380
380
 
381
- func! s:delete_item()
381
+ func! s:delete_item() range
382
382
  call s:focus_window(s:listbufnr)
383
- let uid = s:get_guid(line('.'))
384
- let command = s:delete_item_command . shellescape(uid)
385
- let res = system(command)
383
+ let lnum = a:firstline
384
+ let items = []
385
+ while lnum <= a:lastline
386
+ let guid = s:get_guid(lnum)
387
+ call add(items, shellescape(guid))
388
+ let lnum += 1
389
+ endwhile
390
+ let command = s:delete_items_command . join(items, ' ')
391
+ call system(command)
386
392
  setlocal modifiable
387
- exec "silent " . line('.') . "delete"
393
+ exec "silent " . a:firstline . "," . a:lastline . "delete"
388
394
  setlocal nomodifiable
389
- if winnr("$") > 1
390
- wincmd p
391
- close
392
- end
393
395
  redraw
394
- echom "Item ".uid." deleted"
395
396
  endfunc
396
397
 
397
398
  "------------------------------------------------------------------------
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 6
9
- version: 0.0.6
8
+ - 7
9
+ version: 0.0.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Choi