diff --git a/Site/algorithm.html b/Site/algorithm.html index 8af3603a..f0919535 100644 --- a/Site/algorithm.html +++ b/Site/algorithm.html @@ -84,6 +84,50 @@ })(); + + + + + + - +
- - Great feedback may earn you a free copy for a friend! - - +
+ + + +
+
+ + Or send to your phone:
+ + Phone needs country code (eg. +1 for US/CA, +44 for UK) +
+ + Message sent! + +
+

Master Password

Contact | Lyndir | Google+
diff --git a/Site/css/screen.css b/Site/css/screen.css index 127cb7db..5f723e7b 100644 --- a/Site/css/screen.css +++ b/Site/css/screen.css @@ -1,5 +1,6 @@ html { background: url("../img/back2-light.png") center 0; + height: 100%; } body { padding: 0; @@ -9,6 +10,8 @@ body { font: 105% "Hoefler Text", Garamond, Baskerville, "Baskerville Old Face", "Times New Roman", serif; font-weight: 100; + + height: 100%; } h1, h2, h3, h4 { text-shadow: #FFF 0 -1px 1px, #AAA 0 0 5px; @@ -206,6 +209,15 @@ blockquote:before { font-size: 300%; font-weight: 100; } +#sendtophone input[type=text] { + border: 1px solid #666; + border-radius: 5px; + width: 15em; + + -webkit-box-shadow: 0 0 5px #AAA; + -moz-box-shadow: 0 0 5px #AAA; + box-shadow: 0 0 5px #AAA; +} /* Utilities */ .side { @@ -226,11 +238,10 @@ blockquote:before { position: relative; z-index: 1; } -.appstore { +.badge.appstore { position: fixed; display: none; z-index: 100; - font-size: 0; /* appstore-bubble.png * top: 8px; @@ -239,19 +250,22 @@ blockquote:before { /* appstore.png */ top: 25px; right: 25px; + width: 200px; + + text-align: center; } -.appstore img { +.badge.appstore img { border-radius: 5px; -webkit-box-shadow: 0 0 30px #AAA; -moz-box-shadow: 0 0 30px #AAA; box-shadow: 0 0 30px #AAA; } -.appstore:hover img { +.badge.appstore:hover img { -webkit-box-shadow: 0 0 30px #FFF; -moz-box-shadow: 0 0 30px #FFF; box-shadow: 0 0 30px #FFF; } -header .appstore { +header .badge.appstore { position: absolute; display: block; @@ -259,16 +273,18 @@ header .appstore { /* appstore-bubble.png * bottom: -73px; */ - /* appstore.png */ + /* appstore.png bottom: -25px; + */ + top: 125px; } .tip { - background: url("../img/tip.png") no-repeat; + background: url("../img/tip-above.png") no-repeat; color: white; position: absolute; display: block; - right: 0; + right: 65px; width: 410px; height: 60px; padding: 12px 20px; @@ -280,6 +296,11 @@ header .appstore { font: 14px "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", "Liberation Sans", sans-serif; } +.tip.phone { + background: url("../img/tip-below.png") no-repeat; + padding: 23px 20px; + margin-top: 0px; +} .badge { position: absolute; right: 20px; @@ -380,12 +401,19 @@ a.next:after { width: 184px; height: 184px; } +#frontpage .heading { + height: 100% !important; + padding-top: 100px; +} +#frontpage #about { + padding-top: 4em; +} #frontpage .sidebox { background-position: center 397px; margin-right: -100px; } #frontpage .sidebox .clip { height: 416px; - margin-bottom: 84px; + margin-bottom: 2em; } diff --git a/Site/img/arrow-down.png b/Site/img/arrow-down.png new file mode 100644 index 00000000..445f2f58 Binary files /dev/null and b/Site/img/arrow-down.png differ diff --git a/Site/img/tip.png b/Site/img/tip-above.png similarity index 100% rename from Site/img/tip.png rename to Site/img/tip-above.png diff --git a/Site/img/tip-below.png b/Site/img/tip-below.png new file mode 100644 index 00000000..c8da5272 Binary files /dev/null and b/Site/img/tip-below.png differ diff --git a/Site/index.html b/Site/index.html index 5406dea8..382bd8c1 100644 --- a/Site/index.html +++ b/Site/index.html @@ -72,10 +72,6 @@ - - - - @@ -126,13 +147,25 @@ - +
- - Great feedback may earn you a free copy for a friend! - - +
+ + + +
+
+ + Or send to your phone:
+ + Phone needs country code (eg. +1 for US/CA, +44 for UK) +
+ + Message sent! + +
+

Master Password

@@ -143,24 +176,21 @@ - + +

+ - -
+
+
- - -
Master Password is a security and productivity product by , © 2011.
diff --git a/Site/rate-limit/.keep b/Site/rate-limit/.keep new file mode 100644 index 00000000..e69de29b diff --git a/Site/send.php b/Site/send.php new file mode 100644 index 00000000..8912e0e8 --- /dev/null +++ b/Site/send.php @@ -0,0 +1,79 @@ + 247, "AD" => 376, "AE" => 971, "AF" => 93, "AG" => 1, "AI" => 1, "AL" => 355, "AM" => 374, "AO" => 244, "AQ" => 672, "AR" => 54, "AS" => 1, "AT" => 43, "AU" => 61, "AW" => 297, "AX" => 358, "AZ" => 994, "BA" => 387, "BB" => 1, "BD" => 880, "BE" => 32, "BF" => 226, "BG" => 359, "BH" => 973, "BI" => 257, "BJ" => 229, "BL" => 590, "BM" => 1, "BN" => 673, "BO" => 591, "BQ" => 599, "BR" => 55, "BS" => 1, "BT" => 975, "BW" => 267, "BY" => 375, "BZ" => 501, "CA" => 1, "CC" => 61, "CD" => 243, "CF" => 236, "CG" => 242, "CH" => 41, "CI" => 225, "CK" => 682, "CL" => 56, "CM" => 237, "CN" => 86, "CO" => 57, "CR" => 506, "CU" => 53, "CV" => 238, "CW" => 599, "CX" => 61, "CY" => 357, "CZ" => 420, "DE" => 49, "DJ" => 253, + "DK" => 45, "DM" => 1, "DO" => 1, "DZ" => 213, "EC" => 593, "EE" => 372, "EG" => 20, "EH" => 212, "ER" => 291, "ES" => 34, "ET" => 251, "EU" => 388, "FI" => 358, "FJ" => 679, "FK" => 500, "FM" => 691, "FO" => 298, "FR" => 33, "GA" => 241, "GB" => 44, "GD" => 1, "GE" => 995, "GF" => 594, "GG" => 44, "GH" => 233, "GI" => 350, "GL" => 299, "GM" => 220, "GN" => 224, "GP" => 590, "GQ" => 240, "GR" => 30, "GT" => 502, "GU" => 1, "GW" => 245, "GY" => 592, "HK" => 852, "HN" => 504, "HR" => 385, "HT" => 509, "HU" => 36, "ID" => 62, "IE" => 353, "IL" => 972, "IM" => 44, "IN" => 91, "IO" => 246, "IQ" => 964, + "IR" => 98, "IS" => 354, "IT" => 39, "JE" => 44, "JM" => 1, "JO" => 962, "JP" => 81, "KE" => 254, "KG" => 996, "KH" => 855, "KI" => 686, "KM" => 269, "KN" => 1, "KP" => 850, "KR" => 82, "KW" => 965, "KY" => 1, "KZ" => 7, "LA" => 856, "LB" => 961, "LC" => 1, "LI" => 423, "LK" => 94, "LR" => 231, "LS" => 266, "LT" => 370, "LU" => 352, "LV" => 371, "LY" => 218, "MA" => 212, "MC" => 377, "MD" => 373, "ME" => 382, "MF" => 590, "MG" => 261, "MH" => 692, "MK" => 389, "ML" => 223, "MM" => 95, "MN" => 976, "MO" => 853, "MP" => 1, "MQ" => 596, "MR" => 222, "MS" => 1, "MT" => 356, "MU" => 230, "MV" => 960, "MW" => 265, "MX" => 52, "MY" => 60, "MZ" => 258, "NA" => 264, "NC" => 687, "NE" => 227, "NF" => 672, "NG" => 234, "NI" => 505, "NL" => 31, "NO" => 47, "NP" => 977, "NR" => 674, "NU" => 683, "NZ" => 64, "OM" => 968, "PA" => 507, "PE" => 51, "PF" => 689, "PG" => 675, "PH" => 63, "PK" => 92, "PL" => 48, "PM" => 508, "PR" => 1, + "PS" => 970, "PT" => 351, "PW" => 680, "PY" => 595, "QA" => 974, "QN" => 374, "QS" => 252, "QY" => 90, "RE" => 262, "RO" => 40, "RS" => 381, "RU" => 7, "RW" => 250, "SA" => 966, "SB" => 677, "SC" => 248, "SD" => 249, "SE" => 46, "SG" => 65, "SH" => 290, "SI" => 386, "SJ" => 47, "SK" => 421, "SL" => 232, "SM" => 378, "SN" => 221, "SO" => 252, "SR" => 597, "SS" => 211, "ST" => 239, "SV" => 503, "SX" => 1, "SY" => 963, "SZ" => 268, "TA" => 290, "TC" => 1, "TD" => 235, "TG" => 228, "TH" => 66, "TJ" => 992, "TK" => 690, "TL" => 670, "TM" => 993, "TN" => 216, "TO" => 676, "TR" => 90, "TT" => 1, "TV" => 688, "TW" => 886, "TZ" => 255, "UA" => 380, "UG" => 256, "UK" => 44, "US" => 1, "UY" => 598, "UZ" => 998, "VA" => 379, + "VC" => 1, "VE" => 58, "VG" => 1, "VI" => 1, "VN" => 84, "VU" => 678, "WF" => 681, "WS" => 685, "XC" => 991, "XD" => 888, "XG" => 881, "XN" => 870, "XP" => 878, "XR" => 979, "XS" => 808, "XT" => 800, "XV" => 882, "XV" => 883, "YE" => 967, "YT" => 262, "ZA" => 27, "ZM" => 260, "ZW" => 263, + ); + /* + * This example requires allow_url_fopen to be enabled in php.ini. If it is not enabled, file_get_contents() + * will return an empty result. + * + * We recommend that you use port 5567 instead of port 80, but your + * firewall will probably block access to this port (see FAQ for more + * details): + * $url = 'http://www.bulksms.co.uk:5567/eapi/submission/send_sms/2/2.0'; + * + * Please note that this is only for illustrative purposes, we strongly recommend that you use our comprehensive example + */ + $host = $_SERVER['REMOTE_ADDR']; + $destination = trim($_REQUEST['destination']); + if (strpos($destination, '@') === FALSE) { + // MSISDN + print("phone: $destination\n"); + $destination = preg_replace('/[^[:digit:]]/', '', $destination); + print("phone: $destination\n"); + if (strpos($destination, '0') === 0) { + $country = file_get_contents('http://api.hostip.info/country.php?ip='.urlencode($host)); + $countryCode = $countryToCC[$country]; + if (empty($countryCode)) { + print("Can't internationalize destination."); + exit(); + } + + $destination = preg_replace('/^0+/', $countryCode, $destination); + print("phone: $destination\n"); + } + } + + // Rate-limit the destination. + $destinationFile = "rate-limit/".str_replace("/", "", $destination); + $lastSend = @file_get_contents($destinationFile); + if (!empty($lastSend) && time() - $lastSend < 3600) { + print("Rate-limited destination."); + exit(); + } + + // Rate-limit the host. + $hostFile = "rate-limit/".str_replace("/", "", $host); + $lastSend = @file_get_contents($hostFile); + if (!empty($lastSend) && time() - $lastSend < 3600) { + print("Rate-limited host."); + exit(); + } + + // Limit check passed, record new operation. + file_put_contents($destinationFile, time()); + file_put_contents($hostFile, time()); + + if (strpos($destination, '@') === FALSE) { + // Send message as SMS. + $url = 'http://www.bulksms.co.uk/eapi/submission/send_sms/2/2.0'; + $data = 'username='.urlencode('lhunath').'&password='.file_get_contents('send.sms.pw').'&message='.urlencode('Tap to install Master Password: http://itunes.apple.com/app/id510296984').'&msisdn='.urlencode($destination); + $params = array('http' => array( + 'method' => 'POST', + 'content' => $data, + 'header' => 'Content-type:application/x-www-form-urlencoded', + )); + + print(file_get_contents($url, false, stream_context_create($params))); + print("Sent to $destination as SMS."); + } else { + mail($destination, 'Master Password', 'Tap to install Master Password: http://itunes.apple.com/app/id510296984', 'From: Master Password Website '); + print("Sent to $destination as E-mail."); + } +?> diff --git a/Site/send.sms.pw b/Site/send.sms.pw new file mode 100644 index 00000000..e69de29b diff --git a/Site/support.html b/Site/support.html index 53831aeb..4ba99019 100644 --- a/Site/support.html +++ b/Site/support.html @@ -29,20 +29,31 @@ - +
- - Great feedback may earn you a free copy for a friend! - - +
+ + + +
+
+ + Or send to your phone:
+ + Phone needs country code (eg. +1 for US/CA, +44 for UK) +
+ + Message sent! + +
+

Master Password

diff --git a/Site/sync b/Site/sync index e3f7988e..1a1a29cd 100755 --- a/Site/sync +++ b/Site/sync @@ -2,4 +2,6 @@ set -e cd "${BASH_SOURCE[0]%/*}" -nice rsync --partial --progress --delete --sparse --archive --no-owner --no-perms --no-group --chmod=ugo=rwX . masterpassword.lyndir.com:/usr/local/www/masterpassword.lyndir.com/htdocs/ +nice rsync --partial --progress --delete --sparse --archive --no-owner --no-perms --no-group --chmod=ugo=rwX \ + --exclude rate-limit \ + . masterpassword.lyndir.com:/usr/local/www/masterpassword.lyndir.com/htdocs/ diff --git a/Site/what.html b/Site/what.html index 67090e25..6b4845e0 100644 --- a/Site/what.html +++ b/Site/what.html @@ -84,6 +84,50 @@ })(); + + + + + + - +
- - Great feedback may earn you a free copy for a friend! - - +
+ + + +
+
+ + Or send to your phone:
+ + Phone needs country code (eg. +1 for US/CA, +44 for UK) +
+ + Message sent! + +
+

Master Password