Archive for the ‘Technology / Computing’ Category

SABnzbd URL Bookmarklet (NZBMatrix)

Posted on the April 21st, 2010 under HOWTOs,Technology / Computing by jglemza

Here’s a simple bookmarklet that will take the URL of the current page you’re on and tell SABnzbd to download it. It works great if you’re using NZBMatrix and on the page for the post you’re wanting to download. Perfect for your mobile browser.

javascript:location.href='http://yourhost:8080/api?mode=addurl&name='+encodeURIComponent(location.href)+'&apikey=yourapikey';

Be sure to insert your SABnzbd API key and hostname (or IP address) into the bookmarklet’s code.

HOWTO: Set the SSHD Idle Timeout

Posted on the June 24th, 2009 under HOWTOs,Sys Admin,Technology / Computing by jglemza

Here’s something that I usually forget to change from the default and then get annoyed when my terminal hangs.

  1. As root open your sshd_config file in an editor.
    su -
    vim /etc/ssh/sshd_config
  2. Add the following lines.
    ClientAliveInterval 600
    ClientAliveCountMax 3
  3. Restart the sshd process.
    service sshd restart

That’s it. That will keep you logged in for 30 minutes at a time without activity. (600 seconds x 3)

M3U Playlist Copy Script

Posted on the April 4th, 2009 under Technology / Computing by jglemza

A couple of months ago I picked up a Garmin Nuvi 760 on the cheap. As it turns out this great GPS unit can also play music quite well, especially for riding on the motorcycle. The only problem was there was no good way to get playlists on the device that I could find. Enter the following bash script. This script will read an m3u file, copy all associated mp3 files, and generate a new m3u file. Now all I have to do is specifiy m3u files that I exported from Mozilla Songbird and the path to the Garmin’s SD card.

#!/bin/bash
# April 4, 2009
# m3u_cp.sh
#
# Take an m3u file and copy all associated mp3 files
# to a destination directory and generate a new m3u.
#
# Used to copy m3u playlists from computer to Garmin.

if [ $# -lt 2 ]; then
    echo "Usage: m3u_cp.sh some.m3u /dst"
    exit 0
fi

# Read the m3u file into an array
declare -a M3U
exec 10<"$1"
let count=0

while read LINE <&10; do
    M3U[$count]=$LINE
    ((count++))
done

exec 10>&-

# Determine the m3u's filename
if [[ $1 =~ [^/]*m3u ]]; then
    m3u_path="$2/$BASH_REMATCH"
fi

# If playlist arleady exists, delete it
if [ -f "$m3u_path" ]; then
    rm -f "$m3u_path"
fi

# Loop through the m3u lines
i=0
while [ $i -lt ${#M3U[@]} ]; do
    # The current line is a comment, do nothing with it
    if [ ${M3U[$i]:0:1} = "#" ]; then
        echo ${M3U[$i]} >> "$m3u_path"

    #Current line is a path to an mp3 file
    else
        # Get the current songs filename
        if [[ ${M3U[$i]} =~ [^/]*mp3 ]]; then
            song=$BASH_REMATCH
            mpath=$( echo ${M3U[$i]} |  tr -d '\r' )

            # if the song doesn't exist, copy it to the desitnation folder
            if [ -f "$2/$song" ]; then
                echo File Exists -- $song
            else
                echo Copying -- $song
                cp "$mpath" "$2/$song"
            fi

            # Write the song in the m3u file
            echo $song >> "$m3u_path"
        else
            echo "The regex for finding the song's filename is fraked up."
        fi
    fi

    let i=i+1
done
exit 0

In the middle of writing this I really started wondering why I used bash. Perl would’ve been a lot easier.