<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://it-arts.net/index.php?action=history&amp;feed=atom&amp;title=TRANSMISSION_-_kickass-seedings-torrents.sh</id>
	<title>TRANSMISSION - kickass-seedings-torrents.sh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://it-arts.net/index.php?action=history&amp;feed=atom&amp;title=TRANSMISSION_-_kickass-seedings-torrents.sh"/>
	<link rel="alternate" type="text/html" href="https://it-arts.net/index.php?title=TRANSMISSION_-_kickass-seedings-torrents.sh&amp;action=history"/>
	<updated>2026-07-26T20:22:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://it-arts.net/index.php?title=TRANSMISSION_-_kickass-seedings-torrents.sh&amp;diff=1205&amp;oldid=prev</id>
		<title>Admin at 19:06, 8 July 2026</title>
		<link rel="alternate" type="text/html" href="https://it-arts.net/index.php?title=TRANSMISSION_-_kickass-seedings-torrents.sh&amp;diff=1205&amp;oldid=prev"/>
		<updated>2026-07-08T19:06:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:06, 8 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l142&quot;&gt;Line 142:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 142:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;log &amp;quot;Finished. Processed $COUNT torrent(s).&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;log &amp;quot;Finished. Processed $COUNT torrent(s).&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;---&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://it-arts.net/index.php?title=TRANSMISSION_-_kickass-seedings-torrents.sh&amp;diff=1204&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;Category:Wiki  &#039;&#039;&#039;&#039;&#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&#039;&#039;&#039;&#039;&#039;   &lt;nowiki&gt; #!/usr/bin/env bash  # Reannounce completed Transmission torrents # # Usage: #   ./kickass-seedings-torrents.sh #   ./kickass-seedings-torrents.sh -d   (debug / dry-run) # # Journal: #   journalctl -t kickass-seedings-torrents -f  HOST=&quot;localhost&quot; PORT=&quot;9091&quot; USER=&quot;your_username&quot; PASS=&quot;your_password&quot;  DELAY=10          # seconds between announces MAX=50            #...&quot;</title>
		<link rel="alternate" type="text/html" href="https://it-arts.net/index.php?title=TRANSMISSION_-_kickass-seedings-torrents.sh&amp;diff=1204&amp;oldid=prev"/>
		<updated>2026-07-08T19:06:39Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php/Category:Wiki&quot; title=&quot;Category:Wiki&quot;&gt;Category:Wiki&lt;/a&gt;  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;   &amp;lt;nowiki&amp;gt; #!/usr/bin/env bash  # Reannounce completed Transmission torrents # # Usage: #   ./kickass-seedings-torrents.sh #   ./kickass-seedings-torrents.sh -d   (debug / dry-run) # # Journal: #   journalctl -t kickass-seedings-torrents -f  HOST=&amp;quot;localhost&amp;quot; PORT=&amp;quot;9091&amp;quot; USER=&amp;quot;your_username&amp;quot; PASS=&amp;quot;your_password&amp;quot;  DELAY=10          # seconds between announces MAX=50            #...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Wiki]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Reannounce completed Transmission torrents&lt;br /&gt;
#&lt;br /&gt;
# Usage:&lt;br /&gt;
#   ./kickass-seedings-torrents.sh&lt;br /&gt;
#   ./kickass-seedings-torrents.sh -d   (debug / dry-run)&lt;br /&gt;
#&lt;br /&gt;
# Journal:&lt;br /&gt;
#   journalctl -t kickass-seedings-torrents -f&lt;br /&gt;
&lt;br /&gt;
HOST=&amp;quot;localhost&amp;quot;&lt;br /&gt;
PORT=&amp;quot;9091&amp;quot;&lt;br /&gt;
USER=&amp;quot;your_username&amp;quot;&lt;br /&gt;
PASS=&amp;quot;your_password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DELAY=10          # seconds between announces&lt;br /&gt;
MAX=50            # safety maximum torrents per run&lt;br /&gt;
TIMEOUT=15        # timeout per RPC command&lt;br /&gt;
&lt;br /&gt;
TAG=&amp;quot;kickass-seedings-torrents&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DEBUG=0&lt;br /&gt;
&lt;br /&gt;
# CHECK IF TRANSMISSION IS RUNNING&lt;br /&gt;
if ! systemctl is-active --quiet transmission-daemon; then&lt;br /&gt;
    log_error &amp;quot;Transmission daemon is not running. Exiting.&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# DEBUG MODE&lt;br /&gt;
if [[ &amp;quot;$1&amp;quot; == &amp;quot;-d&amp;quot; ]]; then&lt;br /&gt;
    DEBUG=1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# LOG FUNCTION&lt;br /&gt;
log()&lt;br /&gt;
{&lt;br /&gt;
    echo &amp;quot;$1&amp;quot;&lt;br /&gt;
    logger -t &amp;quot;$TAG&amp;quot; &amp;quot;$1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log_error()&lt;br /&gt;
{&lt;br /&gt;
    echo &amp;quot;$1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
    logger -t &amp;quot;$TAG&amp;quot; &amp;quot;$1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# COMMAND&lt;br /&gt;
REMOTE=(transmission-remote &amp;quot;$HOST:$PORT&amp;quot; -n &amp;quot;${USER}:${PASS}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ &amp;quot;$DEBUG&amp;quot; -eq 1 ]]; then&lt;br /&gt;
    log &amp;quot;DEBUG MODE ENABLED (dry run, no reannounce sent)&amp;quot;&lt;br /&gt;
    printf &amp;quot;Command: &amp;quot;&lt;br /&gt;
    printf &amp;quot;%q &amp;quot; &amp;quot;${REMOTE[@]}&amp;quot;&lt;br /&gt;
    echo&lt;br /&gt;
&lt;br /&gt;
    logger -t &amp;quot;$TAG&amp;quot; &amp;quot;Command: $(printf &amp;#039;%q &amp;#039; &amp;quot;${REMOTE[@]}&amp;quot;)&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Getting torrent list...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LIST=$(&amp;quot;${REMOTE[@]}&amp;quot; -l 2&amp;gt;&amp;amp;1)&lt;br /&gt;
&lt;br /&gt;
if [[ $? -ne 0 ]]; then&lt;br /&gt;
    log_error &amp;quot;ERROR: transmission-remote failed:&amp;quot;&lt;br /&gt;
    log_error &amp;quot;$LIST&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [[ &amp;quot;$DEBUG&amp;quot; -eq 1 ]]; then&lt;br /&gt;
    log &amp;quot;--- Raw transmission output ---&amp;quot;&lt;br /&gt;
    while IFS= read -r line; do&lt;br /&gt;
        log &amp;quot;$line&amp;quot;&lt;br /&gt;
    done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$LIST&amp;quot;&lt;br /&gt;
    log &amp;quot;--- End output ---&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
TORRENTS=$(echo &amp;quot;$LIST&amp;quot; | awk &amp;#039;&lt;br /&gt;
NR &amp;gt; 1 &amp;amp;&amp;amp; $1 != &amp;quot;Sum:&amp;quot; {&lt;br /&gt;
    gsub(/\*/, &amp;quot;&amp;quot;, $1)&lt;br /&gt;
&lt;br /&gt;
    # Completed torrents only&lt;br /&gt;
    if ($2 == &amp;quot;100%&amp;quot; &amp;amp;&amp;amp; $3 != &amp;quot;None&amp;quot;)&lt;br /&gt;
        print $1&lt;br /&gt;
}&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
if [[ -z &amp;quot;$TORRENTS&amp;quot; ]]; then&lt;br /&gt;
    log &amp;quot;No completed torrents found.&amp;quot;&lt;br /&gt;
    exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
COUNT=0&lt;br /&gt;
&lt;br /&gt;
while read -r id; do&lt;br /&gt;
&lt;br /&gt;
    [[ -z &amp;quot;$id&amp;quot; ]] &amp;amp;&amp;amp; continue&lt;br /&gt;
&lt;br /&gt;
    if [[ &amp;quot;$COUNT&amp;quot; -ge &amp;quot;$MAX&amp;quot; ]]; then&lt;br /&gt;
        log &amp;quot;Safety limit reached ($MAX torrents). Stopping.&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    log &amp;quot;Torrent ID $id selected&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    if [[ &amp;quot;$DEBUG&amp;quot; -eq 1 ]]; then&lt;br /&gt;
        log &amp;quot;DRY RUN:&amp;quot;&lt;br /&gt;
        CMD=$(printf &amp;quot;%q &amp;quot; &amp;quot;${REMOTE[@]}&amp;quot; -t &amp;quot;$id&amp;quot; --reannounce)&lt;br /&gt;
        log &amp;quot;  $CMD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    else&lt;br /&gt;
        log &amp;quot;Reannouncing torrent ID $id...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        OUTPUT=$(timeout &amp;quot;$TIMEOUT&amp;quot; \&lt;br /&gt;
            &amp;quot;${REMOTE[@]}&amp;quot; -t &amp;quot;$id&amp;quot; --reannounce 2&amp;gt;&amp;amp;1)&lt;br /&gt;
&lt;br /&gt;
        RET=$?&lt;br /&gt;
&lt;br /&gt;
        if [[ $RET -eq 0 ]]; then&lt;br /&gt;
            log &amp;quot;Torrent ID $id: OK&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            log &amp;quot;Torrent ID $id: FAILED (exit $RET)&amp;quot;&lt;br /&gt;
            while IFS= read -r line; do&lt;br /&gt;
                log &amp;quot;  $line&amp;quot;&lt;br /&gt;
            done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$OUTPUT&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    COUNT=$((COUNT + 1))&lt;br /&gt;
&lt;br /&gt;
    if [[ &amp;quot;$DEBUG&amp;quot; -eq 0 ]]; then&lt;br /&gt;
        sleep &amp;quot;$DELAY&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$TORRENTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Finished. Processed $COUNT torrent(s).&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[https://it-arts.net/index.php/Category:Wiki Return to Wiki Index]&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>