树莓派论坛

 找回密码
 立即注册

实现基于RSS的自动BT下载,以及http网页分享.(附赠自动记录温度脚本)

shinjisfg 发表于 2013-1-20 21:51:39 | 显示全部楼层 |阅读模式
实现RSS自动BT下载,分享功能,所有操作均在2012-12-16-wheezy-raspbian官方系统下实现,老版本不太清楚有问题请自行调整.
脚本是凭记忆写的,未经测试,如有问题或者想要自定义设定请提问.

此脚本实现的功能有
  • 更新到最新版本
  • 安装中文环境,输入法,VNC服务端
  • 安装ntfs-3g增强磁盘兼容性
  • BT下载使用 transmission
  • 使用transmission-control代替原有的web管理前端
  • RSS订阅自动下载使用FlexGet实现,每30分钟检查一次
  • 设定自动挂载sda1到/media/disk
  • 使用samba作为Windows网络邻居分享
  • 使用apache2和php5实现http网页文件分享(默认用户名:user ,默认密码:password)
  • http+chrome可以实现自动播放mp4视频(其他浏览器其他视频都貌似不行)


新建一个脚本文件,将下面的代码复制进去,然后用sudo 执行.

  1. #!/usr/bin/env bash

  2. echo "[+] Updating packages"
  3. apt-get update ; apt-get -y upgrade

  4. echo "[+] Installing Chinese Enviroment"
  5. apt-get -y install ttf-wqy-zenhei scim-pinyin

  6. echo "[+] Installing VNC Server"
  7. apt-get -y install tightvncserver

  8. echo "[+] Installing Samba and Transmission packages"
  9. apt-get -y install transmission-daemon python-transmissionrpc samba avahi-daemon

  10. echo "[+] Downloading Transmission WebUI"
  11. wget http://transmission-control.googlecode.com/files/transmission-control-v0.11_beta_20130110_full.tar.gz
  12. tar -zxvf transmission-control-v0.11_beta_20130110_full.tar.gz
  13. cp -frv web /usr/share/transmission/

  14. echo "[+] Installing NTFS Support"
  15. apt-get -y install ntfs-3g

  16. echo "[+] Configuring Transmission"
  17. service transmission-daemon stop
  18. sed -i -re 's/(rpc-authentication-required":\ )([a-z]+)*/\1false/g' /etc/transmission-daemon/settings.json
  19. sed -i -re 's/(rpc-whitelist-enabled":\ )([a-z]+)*/\1false/g' /etc/transmission-daemon/settings.json
  20. sed -i -re 's/(download-dir":\ )([a-z]+)*(.*)/\1"\/media\/disk",/g' /etc/transmission-daemon/settings.json
  21. service transmission-daemon start

  22. echo "[+] Setting up public Samba share"
  23. mkdir /media/disk
  24. chown debian-transmission /media/disk
  25. echo "/dev/sda1       /media/disk/     ext4    rw,auto,user       0       0" >> /etc/fstab

  26. echo "[public]
  27. comment = Public Shares
  28. browsable = yes
  29. path = /media/disk
  30. public = yes
  31. writable = yes
  32. guest ok = yes" >> /etc/samba/smb.conf
  33. service samba restart

  34. echo "[+] Installing Flexget"
  35. apt-get -y install python-pip
  36. pip install flexget

  37. echo "[+] Setting Flexget"
  38. flexget --db-cleanup
  39. echo "*/30 *  * * *   pi      /usr/local/bin/flexget" >> /var/spool/cron/crontabs/pi
  40. sed -i 'd' /home/pi/.flexget/config.yml
  41. echo "presets:
  42.   transmissionrpc:
  43.     download: #here is where the torrent file will be downloaded
  44.     transmission:
  45.       host: localhost
  46.       port: 9091
  47.       username: #your user name
  48.       password: #your password
  49.       addpaused: no

  50. tasks:
  51.   feed1:
  52.     rss: #your rss URL
  53.     preset: transmissionrpc
  54.     regexp:
  55.       accept:
  56.         - #some keyword will be accepted
  57.       reject:
  58.         - #some keyword will be rejected

  59.   feed2:
  60.     rss: #your rss URL
  61.     preset: transmissionrpc
  62.     regexp:
  63.       accept:
  64.         - #some keyword will be accepted
  65.       reject:
  66.         - #some keyword will be rejected" >> /home/pi/.flexget/config.yml


  67. echo "[+] Installing HTTP Server"
  68. apt-get -y install apache2 php5 unzip
  69. wget http://release.larsjung.de/h5ai/h5ai-0.22.1.zip
  70. unzip h5ai-0.22.1.zip
  71. cp -frv _h5ai /var/www/

  72. echo "[+] Setting up HTTP Server"
  73. sed -i "3 aDirectoryIndex index.html index.php /_h5ai/server/php/index.php" /etc/apache2/mods-enabled/dir.conf
  74. sed -i "13 aAuthName "admin Access"" /etc/apache2/sites-available/default
  75. sed -i "13 aAuthType Basic" /etc/apache2/sites-available/default
  76. sed -i "13 aAuthUserFile /etc/apache2/passwd/passwords" /etc/apache2/sites-available/default
  77. sed -i "13 aRequire valid-user" /etc/apache2/sites-available/default
  78. ln -s /media/disk/ /var/www/
  79. mkdir /etc/apache2/passwd
  80. htpasswd -cb /etc/apache2/passwd/passwords user password

  81. echo "[Rebooting]"
  82. reboot
复制代码
执行完毕后会自动重启.

说明
如果想要设定transmission的webui的用户名密码,编辑/etc/transmission-daemon/settings.json 的"rpc-username": 和"rpc-password": 的字段.
按照已有的说明编辑~/.flexget/config.yml文件.如果前面已经设定了用户名密码,在此文件也要同样的设定一下.接受和排除字段使用正则表达式,如果只有一个字段只需要用- yourTV就行了,如果是有多个字段请用- .*your.*TV.*
默认是匹配所有说明,如果只需要匹配标题的话在accept/reject的同样缩进下新增一行 from: title ,可以有效缩小任务执行时间,减轻系统负担.
flexget还可以实现邮件通知,这个功能这里暂时不提.


小赠送
自动记录温度脚本.新建一个.sh脚本文件和一个.log 平文本文件.
.log 文件的第一行可以随便写一个什么,我写的是Raspberry Pi Temperature Logging.
.sh脚本文件复制以下内容.

  1. #!/bin/bash

  2. ######################################################################

  3. # Raspberry Pi Temperature Logging

  4. ######################################################################
  5. ti=`date`
  6. tm=`/opt/vc/bin/vcgencmd measure_temp`
  7. sudo sed -i "1 a$ti ----> $tm" yourlogfile
复制代码
youlogfile处写上刚才建立的.log文件的绝对路径.
执行该脚本就会自动在刚才的log的文件中记录时间和温度.
想要定时执行的话用
  1. crontab -e
复制代码
添加一行
  1. */10 * * * * sh your.sh
复制代码
就能每10分钟自动执行一次.记录温度了.
shinjisfg  楼主| 发表于 2013-1-21 00:51:45 | 显示全部楼层

实现基于RSS的自动BT下载,以及http网页分享

本帖最后由 shinjisfg 于 2013-1-21 00:55 编辑

实现RSS自动BT下载,分享功能,所有操作均在2012-12-16-wheezy-raspbian官方系统下实现,老版本不太清楚有问题请自行调整.
脚本是凭记忆写的,未经测试,如有问题或者想要自定义设定请提问.

此脚本实现的功能有

  • 更新到最新版本
  • 安装中文环境,输入法,VNC服务端
  • 安装ntfs-3g增强磁盘兼容性
  • BT下载使用 transmission
  • 使用transmission-control代替原有的web管理前端
  • RSS订阅自动下载使用FlexGet实现,每30分钟检查一次
  • 设定自动挂载sda1到/media/disk
  • 使用samba作为Windows网络邻居分享
  • 使用apache2和php5实现http网页文件分享(默认用户名:user ,默认密码:password)
  • 无需下载可以实现播放mp4视频,预览文本等功能


安装
  1. wget http://dl.dropbox.com/u/4521358/runme.sh
  2. sudo sh runme.sh
复制代码
执行完毕后会自动重启.

说明
所有BT下载好的文件都可以在http://树莓派IP 中看到,经过测试,chrome可以直接播放其中的mp4视频(其他浏览器其他视频都貌似不行).
如果想要设定transmission的webui的用户名密码,编辑/etc/transmission-daemon/settings.json 的"rpc-username": 和"rpc-password": 的字段.
按照已有的说明编辑~/.flexget/config.yml文件.如果前面已经设定了用户名密码,在此文件也要同样的设定一下.接受和排除字段使用正则表达式,如果只有一个字段只需要用- yourTV就行了,如果是有多个字段请用- .*your.*TV.*
默认是匹配所有说明,如果只需要匹配标题的话在accept/reject的同样缩进下新增一行 from: title ,可以有效缩小任务执行时间,减轻系统负担.
flexget还可以实现邮件通知,这个功能这里暂时不提.
树老大 发表于 2013-1-21 13:18:40 | 显示全部楼层
顶一下。
kingfin 发表于 2013-1-21 15:08:10 | 显示全部楼层
支持了,不错。
loading 发表于 2013-1-30 00:42:57 | 显示全部楼层
顶一下
bvjeff 发表于 2013-1-30 18:20:25 | 显示全部楼层
支持了,不错。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )