zoukankan      html  css  js  c++  java
  • cnBeta过期评论查看器,再次更新

    首先说一下做这个软件的动机和用途。平时喜欢在cnBeta网站看新闻,但是有时候太忙了,不可能每天都去看,一般两三天或者四五天去一次,快速扫一下重要的新闻,遇到特别好的文章就收藏起来。唯一不爽的就是超过一天的新闻评论不显示了,所以一边学Ruby一边做了这个软件。

    上一篇博客中使用的方法是在在浏览器中使用远程的代理服务器,然后就可以看到过期的评论。但是网页打开速度比较慢,图片加载慢,视频看不了。现在又用了一个新的方法,而且效果不错,代理服务器还是在本机运行,网页文本从远程服务器获取,其他的图片、视频等则不经过远程代理,从而达到了一个较好的使用体验。

    代理服务器做成了比较通用的结构,可以挂载对多个网站的处理。

     1class Website
     2  @@sites = {}
     3  attr_accessor :domain, :encoding
     4  def initialize(domain, encoding)
     5    @domain = domain
     6    @encoding = encoding
     7    @@sites[domain] = self
     8  end
     9
    10  def self.get_site(domain)
    11    @@sites[domain]
    12  end
    13
    14  def self.all_sites
    15    @@sites.values
    16  end
    17end
    18
    19class << Websites::Cnbeta
    20  def need_collect_uri?(uri)
    21    false
    22  end
    23
    24  def process_uri(uri, downloader)
    25    if match = uri.match(%r{http://www.cnbeta.com/articles/\w+\.htm})
    26      if data = downloader.get("http://116.255.235.62:88/get?url=#{uri}", nil, "ASCII-8BIT")
    27        return data, 'text/html', true
    28      end
    29    end
    30    return nil
    31  end
    32end
    33
    34server = OfflineProxyServer.new(ServerName: "localhost", Port: 9999)
    35server.downloader = WebClient.new
    36Signal.trap(:INT){ server.shutdown }
    37server.start
    

    相关的代码已经用OCRA(One-Click Ruby Application)工具打包成了一个exe文件,可以独立运行。

    下载proxyserver.zip - 4.32MB

    运行后会在本机启动一个代理服务,在浏览器中把代理服务器设置成localhost:9999,再看新闻时就可以看到过期的评论。

    最近在看《Agile Web Development with Rails, 4th Edition》,RoR真的是很强,ActiveRecord的OR Mapping设计的很好,自动生成Scaffolding代码,使用erb生成HTML,用Sass生成CSS,用CoffeeScript生成Javascript,完全让人工作在一个更高的层次上。RoR有很多的插件可用,常用的功能都有现成的实现。居然有这么多好用的工具,以前的眼界确实太窄了,有种想把自己的网站用RoR重写一次的冲动。

  • 相关阅读:
    链表问题(5)-----读取
    链表问题(4)----环形链
    服务器上安装anaconda
    链表问题(3)-----反转
    (1)安装vagrant和virtualbox
    链表问题(2)-----删除
    链表问题(1)----遍历和实现
    Python笔记26----正则表达式匹配
    读书笔记--SQL必知必会04--过滤数据
    Docker
  • 原文地址:https://www.cnblogs.com/rufi/p/2753546.html
Copyright © 2011-2022 走看看