summaryrefslogtreecommitdiff
path: root/title.bash
blob: 9bed0c55debaf2a16acf5f4a45f0008f5b3933c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash

# v0.1  : basic title extract
# v0.2  : added help arguments
# v0.3  : added version arguments
# v0.3.1: change !title to title in version info
# v0.4  : added case insensitive matching
# v0.5  : ignore SSL certificate errors
# v0.6  : switch to curl, add maximum filesize and time limits
# v0.7  : follow HTTP redirects, was broken since switch to curl
# v0.7.1: pretend to be Firefox, some broken websites reject cURL
# v0.8  : strip newlines and leading whitespace from "broken" titles
        : update user agent string
# v0.8.1: change name in version string to "blatitle"

OPTS='--location --insecure --silent --max-filesize 1048576 --max-time 10 -A "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"'

read url

if [ "$url" == "-h" ] || [ "$url" == "--help" ]
then
  echo "Usage: '!title <url>' where <url> is an http:// or https:// URL"
elif [ "$url" == "-v" ] || [ "$url" == "--version" ]
then
  echo "blatitle version 0.8.1"
else
  curl $OPTS "$url" | sed -n -e 'H;${x;s!.*<head[^>]*>\(.*\)</head>.*!\1!I;tnext};b;:next;s!.*<title>\(.*\)</title>.*!\1!pI' | sed ':a;N;$!ba;s/\n//g' | sed -e 's/^[ \t]*//'
fi