def NcursesInterface::find_feeds
str = NcursesInterface::get_input('find_feed')
if str && str.length > 0
NcursesInterface::set_status($config['msg_searching'])
th = Thread.new do
results = Engine::find_feeds(str)
if results.length == 0
$new_status = $config['msg_find_nomatches']
return 1
end
id = NcursesInterface::get_win_id('find')
w = $config['w'] - 10
h = $config['h'] - 5
h = results.size + 3 if h > results.size + 3
new_win = {
'title' => $config['msg_find_title'] % [ str, results.size ],
'key' => 'find',
'coords' => [5, 3, w, h],
'colors' => $wins[NcursesInterface::get_win_id('item')].colors,
}
if id == -1
$wins << win = NcursesInterface::ListWindow::new(new_win)
else
$wins[id] = win = NcursesInterface::ListWindow::new(new_win)
end
win.items.clear
win.items << { 'title' => $config['msg_find_desc'] }
results.each do |feed|
title = [feed['sitename'],
feed['description'],
feed['dataurl']
].join ' - '
win.items << { 'title' => title, 'find' => feed['dataurl'], :otitle => feed['sitename'] }
end
win.draw_items
NcursesInterface::set_active_win(get_win_id('find'))
end
th.priority = $config['thread_priority_find']
else
NcursesInterface::set_status($config['msg_find_nomatches'])
end
end