トレントディストリビューションの新しいシリーズ(.bat + curl + aria2c)のみをロードする自動化[HowTo]

夕食時に、後期玉座から爆発的な何かを見ることは興味深いです。

また、テーブルが設定されると非常に不愉快になり、すべてのディストリビューションを「そして何か新しいものが出現したかどうか」熱心にチェックし始めます。

そして、最良の場合、uTorrentには「残り5-10-15分」という碑文があります。 そして、テーブルは寒くなってきています。



だから物事は行われていません。



チャレンジ:







解決策:



最後にダウンロードしたシリーズの番号を含むディストリビューションのファイルリスト(get.txt)を作成します。



batスクリプト(get.bat)のスケジュールされた起動。各ディストリビューションで次のことを行います。

  1. トレントファイルをダウンロードし、
  2. 「新しいことはありますか?」
  3. 新しいもののみをダウンロードします(ディストリビューション全体ではありません)。
  4. 設定ファイル(get.txt)の最後のシリーズの番号を更新します。
  5. ダウンロードログ(log.txt)にエントリを作成します。
  6. 「ダウンロードログ」へのショートカットを「スタートバー」にコピーします




結果:



新しいシリーズがアップロードされると、ダウンロードログへのショートカットがリンクパネルにコピーされます(写真のアイコンは黄色の星です)。



手で削除する新しい「アスタリスク」全体を表示した後、前兆が機能します。

「アスタリスクがあります-新しい映画があります。アスタリスクはありません-新しいものはありません。」





インストール:



  1. プログラムフォルダーを作成します(たとえば、d:\ AutoTorrent)
  2. curlトレントファイルをダウンロードするためのコンソールユーティリティをダウンロードする
  3. aria2cトレントファイルを操作するためのコンソールユーティリティをダウンロードする
  4. 新しいシリーズをチェックするためのbatスクリプト( get.bat )をダウンロードします
  5. bat-script設定の調整(rutracker.orgのログインパスワード)
  6. 監視対象のディストリビューションのリストを作成(get.txt)
  7. ログファイル(log.txt)を作成します
  8. 雑誌のショートカットを作成(New Series.lnk)
  9. 定期的なスクリプト実行のスケジュール


詳細:



1.プログラムフォルダー


batスクリプトに加えて、他のファイルとフォルダーが作成および使用されるため、これらすべてを別の場所にローカライズすると便利です。



2. curlユーティリティ


トレントファイルのダウンロードに使用されます。

rutrackerからtorrentファイルをダウンロードするには、 bb_dl=%torrent_id%



パラメーターをCookieに追加する必要があります。

Aria2はファイルをアップロードすることもできますが、cookie rutrackerで友達を作ることはできませんでした。



3.ユーティリティaria2c


ディストリビューションから個々のファイルをダウンロードできます。

トレントの特性により、個別のファイルをダウンロードすると、隣接するファイルが部分的にダウンロードされるため、隣接するファイルの一部が配布フォルダに表示される場合があります。

また、ディストリビューション内のファイルが乱れる可能性があることも判明しました。 したがって、新しいファイルを判別するには、ファイルシリーズ名でソートします。

順不同分布の例
*** BitTorrentファイル情報***

コメント: rutracker.org/forum/viewtopic.php?t=4400218

ファイル:

idx |パス/長さ

=== + ============================================== ===============================

1 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e10.avi

| 609MiB(638,871,552)

--- + ---------------------------------------------- -----------------------------

2 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e07.avi

| 606MiB(635,699,200)

--- + ---------------------------------------------- -----------------------------

3 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e08.avi

| 604MiB(634,238,976)

--- + ---------------------------------------------- -----------------------------

4 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e02.avi

| 602MiB(631,814,144)

--- + ---------------------------------------------- -----------------------------

5 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e04.avi

| 602MiB(631,265,280)

--- + ---------------------------------------------- -----------------------------

6 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e06.avi

| 601MiB(631,037,952)

--- + ---------------------------------------------- -----------------------------

7 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e03.avi

| 601MiB(630,517,760)

--- + ---------------------------------------------- -----------------------------

8 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e05.avi

| 601MiB(630,310,912)

--- + ---------------------------------------------- -----------------------------

9 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e01.avi

| 598MiB(627,965,952)

--- + ---------------------------------------------- -----------------------------

10 | ./Game of Thronesシーズン3(LostFilm)/Game.of.Thrones.s03e09.avi

| 557MiB(584,220,672)

--- + ---------------------------------------------- -----------------------------

>>>ファイル「rutracker_4400218.torrent」の内容を印刷しています...





4.batスクリプトget.bat


スポーツの興味からバットで書かれました。

キリル文字の操作には困難がありました。メモ帳でファイルを編集し、画面に表示して、ログファイルに書き込みます。 したがって、 chcp



した複数のchcp



ます。

ローカル変数の使用が難しいため、多くのcall - exit /b



ルーチンが登場しました。

if /?



ヘルプで EQL



比較演算子が発行されますが、 bat



はそれを誓ってEQU



を受け入れEQU



。 // Microsoft Windows [バージョン6.1.7601]



5. get.bat batスクリプトの設定


スクリプトのテキストには、実際の値を設定する必要があるパラメーターのグループがあります。





6.監視対象の配布のファイルリスト(get.txt)


行形式:



get.txtファイルの例:

 rutor 227513 24 "  " ( 6) rutracker 3799523 19  rutracker 4400218 10  
      
      







7.ダウンロードログ(log.txt)


ダウンロードした新しいファイルに関する情報が含まれています。 新しいエントリが上部に追加されます。

「スター」をクリックすると、このジャーナルがノートブックで開きます。

コンテンツの例
05.21.2013 21:16:57.50:[rutracker 3799523 13 Pozner] ./Pozner-2_[rutracker.org 022 / P2-141_Maksim_Kantor.avi

05/21/2013 20:07:44.66:[rutor 227513 24 "The Big Bang Theory"(シーズン6)] ./The.Big.Bang.Theory.S06.1080p.WEB-DL.Rus.Eng.HDCLUB/The.Big .Bang.Theory.S06E24.1080p.WEB-DL.Rus.Eng.HDCLUB.mkv

05/21/2013 19:03:35.11:[rutracker 86939 46 ### for test ###] ./Brat-1、Brother-2 / 2001-Brother 1/13-Nautilus Pompilius-People on the hill(デモ).mp3

05/20/2013 19:03:35.08:[rutracker 86939 45 ### for test ###] ./Brat-1、Brother-2 / 2001-Brother 1/12-Nautilus Pompilius-The Beast.mp3





8.マガジンのラベル(.lnk)


新しいダウンロードについて通知するには、目立つ場所へのショートカットをコピーします-「デスクトップ」、「リンク」パネル。 ショートカット自体は、batスクリプトフォルダーに作成する必要があります。 ログファイルがまだ存在しない場合は、作成する必要があります。



9.タスク計画


batスクリプトを定期的に実行するには、タスクスケジューラでタスクを作成する必要があります(コントロールパネル\コントロールパネルのすべての要素\管理\タスクスケジューラ)。

異常から-スクリプトへのフルパスは引用符で示され、作業フォルダは示されません。 途中で隙間がありますが。

スクリプトが実行されるたびに、cmdウィンドウが開きます。

キリル文字が読めない場合-コマンドウィンドウでは、プロパティでフォントLucidaを選択する必要があります。

cmdウィンドウなしで実行する必要がある場合は、 get.vbsを呼び出すことができます。



合計



すべてが1か月以上干渉なしで機能しています。

座って、uTorrentでダウンロードしたトレントファイルを開くだけです。



参照:

habrahabr.ru/sandbox/51123

ubuntu.opentomsk.net/discussion/viewtopic.php?id=3220



ファイル:

get.bat
 @echo off rem rem 13.05.2013 Tucker56 http://habrahabr.ru/post/180173/ rem rem   /  torrent- rem rem : rem -     -  get.txt ( ) rem -      log.txt rem -   ( .lnk)    log.txt rem -    (   ) rem -          rem rem  (      ): rem -      (%video_dir%) rem -         rem rem : rem -         Є«« ,       Lucida @SetLocal EnableDelayedExpansion rem     CMD,      cp1251,          for /f "tokens=2 delims=:" %%a in ('chcp') do set /a chcp_cmd=%%a rem             chcp 1251 >nul rem   ,    (chcp) for /f "tokens=2 delims=:" %%a in ('chcp') do set /a chcp=%%a rem -------------------------------------------------------------- rem -   --------------------------------------- rem workdir=_workdir -  ,       torrent- rem rutracker_login=login -    http://rutracker.org rem rutracker_password=password -    http://rutracker.org rem video_dir=d:\video -       (         torrent-) rem lnk_name=" .lnk" -      log.txt rem lnk_dest="C:\Users\Admin\Favorites\" -         set workdir=_workdir set rutracker_login=login set rutracker_password=password set video_dir=d:\Video set lnk_name=" .lnk" set lnk_dest="C:\Users\Admin\Favorites\" rem -   ------------------------------------------ rem  get.txt - c  torrent- rem ----- rem  : rem _{rutracker, rutor} _{  URL} ___{    } rem ----- rem   get.txt: rem rutracker 86939 46 rem rutracker 4400218 7 rem rutor 227513 22 rem -------------------------------------------------------------- rem -------------------------------------------------------------- rem   ,      mkdir !workdir! >nul 2>nul rem    RuTracker,   cookie-    torrent- curl -s -c "%workdir%\cookie_rutracker.txt" -A "Opera/10.00 (Windows NT 5.1; U; ru)" ^ -d "login_username=!rutracker_login!&login_password=!rutracker_password!&login=%C2%F5%EE%E4" ^ "http://login.rutracker.org/forum/login.php" > nul del /q !workdir!\~get.txt.new.tmp 2>nul rem        get.txt for /F "tokens=1,2,3*" %%i in (get.txt) do ( set tracker_id=%%i set torrent_id=%%j set last_file_id=%%k set torrent_comment=%%l set torrent_file=!tracker_id!_!torrent_id!.torrent set err= rem  torrent-  RuTracker  RuTor echo !tracker_id! !torrent_id! !last_file_id!:    '!torrent_file!' if "%%i" == "rutracker" ( curl -s -A "Opera/10.00 (Windows NT 5.1; U; ru)" ^ -b "%workdir%\cookie_rutracker.txt" ^ -b "bb_dl=!torrent_id!" ^ "http://dl.rutracker.org/forum/dl.php?t=!torrent_id!" -o "!workdir!\!torrent_file!" ) else ( if "%%i" == "rutor" ( curl -s -A "Opera/10.00 (Windows NT 5.1; U; ru)" ^ "http://d.rutor.org/download/!torrent_id!" -o "!workdir!\!torrent_file!" ) else ( set err=X echo !tracker_id! !torrent_id! !last_file_id!:  : '!tracker_id!' ) ) if !err! NEQ X ( rem  torrent-  call,     for in  --show-files !workdir!\!torrent_file! call :process !torrent_file! ) rem      (  get.txt) echo !tracker_id! !torrent_id! !last_file_id! !torrent_comment!>> !workdir!\~get.txt.new.tmp echo. ) rem       (get.txt) move /y !workdir!\~get.txt.new.tmp get.txt >nul 2>nul rem     aria2c del /Q !video_dir!\*.aria2 >nul 2>nul rem       "" -  if /?  EQL WTF?! if "!has_new!" EQU "X" copy /Y %lnk_name% %lnk_dest% >nul rem    CMD chcp !chcp_cmd! >nul rem      ,     rem pause exit /b rem  torrent- - ,    rem %1 -  torrent- = !torrent_file!,  %1     for in :process echo !tracker_id! !torrent_id! !last_file_id!:   '!torrent_file!' rem [ ]  CMD /U   chcp 866   find /c "+" for /f "tokens=1" %%a in ('aria2c.exe --show-files %workdir%^\%1 ^| findstr /R "^---+----*" ^| find /c "+"') do set cnt=%%a rem         ,    if !last_file_id! LSS !cnt! ( rem  torrent-       (http://rutracker.org/forum/viewtopic.php?t=4400218), rem        del /q !workdir!\~sort.tmp 2>nul for /f "tokens=1,2 delims=|" %%x in ('aria2c.exe --show-files %workdir%^\%1 ^| findstr /BRC:"^[ ]*[0-9][0-9]*"') do echo %%y ^| %%x >> !workdir!\~sort.tmp set /a skip=last_file_id rem   .  call,   skip=%skip% call :download_new_files ) else ( echo !tracker_id! !torrent_id! !last_file_id!:    ) exit /b rem    :download_new_files rem 1-3)      UTF-8,      chcp 65001 > nul rem  -          for /f "skip=%skip% tokens=1,2 delims=|" %%o in ('sort %workdir%^\~sort.tmp') do ( rem 2-3)    65001 chcp !chcp! >nul set /a down=%%p rem  call rem 1)   echo       ,    ,   ,    rem 2)   %time%      call :down_file %%o ) rem 3-3)    65001 chcp !chcp! >nul rem    del /q !workdir!\~sort.tmp 2>nul exit /b rem      rem %* =    :down_file set /a last_file_id=last_file_id+1 echo !tracker_id! !torrent_id! !last_file_id!:   '%*' aria2c --dir=!video_dir! ^ --seed-time=0 ^ --file-allocation=none ^ --summary-interval=0 ^ --console-log-level=error ^ --max-overall-download-limit=1M ^ --allow-overwrite=true ^ --select-file=!down! ^ !workdir!\!torrent_file! rem  - : rem --quiet=true ^ rem ,           rem --allow-overwrite=true ^ rem ,    torrent-,     rem          torrent- rem     ,    rem    log.txt -    rem   %time%   for,       ,   call copy log.txt !workdir!\~log.txt.tmp >nul 2>nul echo %date% %time%: [!tracker_id! !torrent_id! !last_file_id! !torrent_comment!] %* >log.txt type !workdir!\~log.txt.tmp >>log.txt 2>nul del /q !workdir!\~log.txt.tmp >nul 2>nul rem        set has_new=X exit /b
      
      



get.vbs
 Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "get.bat", 0 Set oShell = Nothing
      
      






All Articles