Removed not used rss backend.
This commit is contained in:
parent
146bd7f9d4
commit
7ae82024ad
8 changed files with 0 additions and 209 deletions
|
@ -1,52 +0,0 @@
|
||||||
class App.DashboardRss extends App.Controller
|
|
||||||
constructor: ->
|
|
||||||
super
|
|
||||||
|
|
||||||
# bind to rebuild view event
|
|
||||||
@bind('rss_rebuild', @fetch)
|
|
||||||
|
|
||||||
# refresh list ever 600 sec.
|
|
||||||
@fetch()
|
|
||||||
|
|
||||||
fetch: =>
|
|
||||||
|
|
||||||
# get data from cache
|
|
||||||
cache = App.SessionStorage.get('dashboard_rss')
|
|
||||||
if cache
|
|
||||||
cache.head = 'Heise ATOM'
|
|
||||||
@render( cache )
|
|
||||||
|
|
||||||
# init fetch via ajax, all other updates on time via websockets
|
|
||||||
else
|
|
||||||
@ajax(
|
|
||||||
id: 'dashboard_rss'
|
|
||||||
type: 'GET'
|
|
||||||
url: @apiPath + '/rss_fetch'
|
|
||||||
data: {
|
|
||||||
limit: 8
|
|
||||||
url: 'http://www.heise.de/newsticker/heise-atom.xml'
|
|
||||||
}
|
|
||||||
processData: true
|
|
||||||
success: (data) =>
|
|
||||||
if data.message
|
|
||||||
@render(
|
|
||||||
head: 'Heise ATOM'
|
|
||||||
message: data.message
|
|
||||||
)
|
|
||||||
else
|
|
||||||
App.SessionStorage.set('dashboard_rss', data)
|
|
||||||
data.head = 'Heise ATOM'
|
|
||||||
@render(data)
|
|
||||||
error: =>
|
|
||||||
@render(
|
|
||||||
head: 'Heise ATOM'
|
|
||||||
message: 'Unable to fetch rss!'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
render: (data) ->
|
|
||||||
@html App.view('dashboard/rss')(
|
|
||||||
head: data.head,
|
|
||||||
items: data.items || []
|
|
||||||
message: data.message
|
|
||||||
)
|
|
|
@ -1,11 +0,0 @@
|
||||||
<div class="span3">
|
|
||||||
<h2 class="can-move"><%- @T( @head ) %></h2>
|
|
||||||
<% if @message: %>
|
|
||||||
<%- @T(@message) %>
|
|
||||||
<% end %>
|
|
||||||
<ul>
|
|
||||||
<% for item in @items: %>
|
|
||||||
<li><a href="<%= item.link %>" title="<%= item.summary %>" target="_blank"><%= item.title %>"</a></li>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
|
@ -1,27 +0,0 @@
|
||||||
# Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
|
|
||||||
|
|
||||||
class RssController < ApplicationController
|
|
||||||
before_action :authentication_check
|
|
||||||
|
|
||||||
=begin
|
|
||||||
|
|
||||||
Resource:
|
|
||||||
GET /api/v1/rss_fetch
|
|
||||||
|
|
||||||
Response:
|
|
||||||
{
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
Test:
|
|
||||||
curl http://localhost/api/v1/rss_fetch.json -v -u #{login}:#{password} -H "Content-Type: application/json" -X GET
|
|
||||||
|
|
||||||
=end
|
|
||||||
|
|
||||||
def fetch
|
|
||||||
items = Rss.fetch(params[:url], params[:limit])
|
|
||||||
raise Exceptions::UnprocessableEntity, "failed to fetch #{params[:url]}" if items.nil?
|
|
||||||
render json: { items: items }
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,7 +0,0 @@
|
||||||
Zammad::Application.routes.draw do
|
|
||||||
api_path = Rails.configuration.api_path
|
|
||||||
|
|
||||||
# rss
|
|
||||||
match api_path + '/rss_fetch', to: 'rss#fetch', via: :get
|
|
||||||
|
|
||||||
end
|
|
38
lib/rss.rb
38
lib/rss.rb
|
@ -1,38 +0,0 @@
|
||||||
require 'simple-rss'
|
|
||||||
module Rss
|
|
||||||
def self.fetch(url, limit = 10)
|
|
||||||
cache_key = 'rss::' + url
|
|
||||||
items = Cache.get( cache_key )
|
|
||||||
return items if items
|
|
||||||
|
|
||||||
begin
|
|
||||||
Rails.logger.info "fetch rss... #{url}"
|
|
||||||
response = UserAgent.request(url)
|
|
||||||
if !response.success?
|
|
||||||
raise "Can't fetch '#{url}', http code: #{response.code}"
|
|
||||||
end
|
|
||||||
rss = SimpleRSS.parse response.body
|
|
||||||
items = []
|
|
||||||
fetched = 0
|
|
||||||
rss.items.each { |item|
|
|
||||||
record = {
|
|
||||||
id: item.id,
|
|
||||||
title: Encode.conv( 'utf8', item.title ),
|
|
||||||
summary: Encode.conv( 'utf8', item.summary ),
|
|
||||||
link: item.link,
|
|
||||||
published: item.published
|
|
||||||
}
|
|
||||||
items.push record
|
|
||||||
fetched += 1
|
|
||||||
break item if fetched == limit.to_i
|
|
||||||
}
|
|
||||||
Cache.write( cache_key, items, expires_in: 4.hours )
|
|
||||||
rescue => e
|
|
||||||
Rails.logger.error "can't fetch #{url}"
|
|
||||||
Rails.logger.error e.inspect
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
items
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,57 +0,0 @@
|
||||||
require 'rss'
|
|
||||||
|
|
||||||
class Sessions::Backend::Rss < Sessions::Backend::Base
|
|
||||||
|
|
||||||
def collection_key
|
|
||||||
"rss::load::#{self.class}::#{@user.id}"
|
|
||||||
end
|
|
||||||
|
|
||||||
def load
|
|
||||||
|
|
||||||
# check timeout
|
|
||||||
cache = Sessions::CacheIn.get(collection_key)
|
|
||||||
return cache if cache
|
|
||||||
|
|
||||||
url = 'http://www.heise.de/newsticker/heise-atom.xml'
|
|
||||||
rss_items = Rss.fetch(url, 8)
|
|
||||||
|
|
||||||
# set new timeout
|
|
||||||
Sessions::CacheIn.set(collection_key, rss_items, { expires_in: 1.hour })
|
|
||||||
|
|
||||||
rss_items
|
|
||||||
end
|
|
||||||
|
|
||||||
def client_key
|
|
||||||
"rss::load::#{self.class}::#{@user.id}::#{@client_id}"
|
|
||||||
end
|
|
||||||
|
|
||||||
def push
|
|
||||||
|
|
||||||
# check timeout
|
|
||||||
timeout = Sessions::CacheIn.get(client_key)
|
|
||||||
return if timeout
|
|
||||||
|
|
||||||
# set new timeout
|
|
||||||
Sessions::CacheIn.set(client_key, true, { expires_in: @ttl.seconds })
|
|
||||||
|
|
||||||
data = load
|
|
||||||
|
|
||||||
return if !data || data.empty?
|
|
||||||
|
|
||||||
if !@client
|
|
||||||
return {
|
|
||||||
event: 'rss_rebuild',
|
|
||||||
collection: 'dashboard_rss',
|
|
||||||
data: data,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
@client.log "push rss for user #{@user.id}"
|
|
||||||
@client.send(
|
|
||||||
event: 'rss_rebuild',
|
|
||||||
collection: 'dashboard_rss',
|
|
||||||
data: data,
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -12,7 +12,6 @@ class Sessions::Client
|
||||||
backends = [
|
backends = [
|
||||||
'Sessions::Backend::TicketOverviewList',
|
'Sessions::Backend::TicketOverviewList',
|
||||||
'Sessions::Backend::Collections',
|
'Sessions::Backend::Collections',
|
||||||
'Sessions::Backend::Rss',
|
|
||||||
'Sessions::Backend::ActivityStream',
|
'Sessions::Backend::ActivityStream',
|
||||||
'Sessions::Backend::TicketCreate',
|
'Sessions::Backend::TicketCreate',
|
||||||
]
|
]
|
||||||
|
|
|
@ -186,22 +186,6 @@ class SessionBasicTest < ActiveSupport::TestCase
|
||||||
assert_equal(result1, result2, 'check collections')
|
assert_equal(result1, result2, 'check collections')
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'c rss' do
|
|
||||||
user = User.lookup(id: 1)
|
|
||||||
collection_client1 = Sessions::Backend::Rss.new(user, {}, false, '123-1')
|
|
||||||
|
|
||||||
# get whole collections
|
|
||||||
result1 = collection_client1.push
|
|
||||||
#puts "RSS1: #{result1.inspect}"
|
|
||||||
assert(!result1.empty?, 'check rss')
|
|
||||||
sleep 0.5
|
|
||||||
|
|
||||||
# next check should be empty
|
|
||||||
result1 = collection_client1.push
|
|
||||||
#puts "R1: #{result1.inspect}"
|
|
||||||
assert(!result1, 'check rss - recall')
|
|
||||||
end
|
|
||||||
|
|
||||||
test 'c activity stream' do
|
test 'c activity stream' do
|
||||||
|
|
||||||
# create users
|
# create users
|
||||||
|
|
Loading…
Reference in a new issue