首页 扩展程序 Google Hangout Keep Online

Google Hangout Keep Online

提供方: Dmitry Koterov
13
社交与通讯 1,151 位用户

插件简介

Auto-join Google Hangout when entering its URL & presses "I am not sleeping" time to time.
This script is for you if you want to set up an always-on camera+monitor in your office to keep in touch with your colleagues when your are out of the office.

Features:
1. Auto-joins a Google Hangout session when somebody refreshes the page by accident.
2. Automatically presses “I am not sleeping” time to time.
3. Allows you to have a permanent URL for your hangout, even if it is reloaded and its link is changed.

ATTENTION: requires English Google Hangout localization! Does not work for any other language except English. To turn on English, you should: 1) specify English as a default language in your Google account, 2) specify English as a first-priority language in your browser (for Chrome: Menu – Settings – Show advanced settings… – Languages, move English list item at the 1st place).

If you want to make a constant link for your hangout (bound to your browser), even after the hangout is reloaded and its Google link is changed, you may place the following PHP script somewhere to your web-server (e.g. to /google_hangout_keep_online.php) and specify its URL with “Change permalink” button. This script is a simple URL shortener which also allows to modify existed short URLs to keep them permanent.

// Program entry point.
function main()
{
ini_set('html_errors', false);
ini_set('display_errors', true);
$file = session_save_path() . "/google_hangout_keep_online.csv";

$f = @fopen($file, "a+");
if (!$f) {
throw new Exception("Cannot open $file for writing: " . last_error());
}

$f = @fopen($file, "r+");
if (!$f) {
throw new Exception("Cannot open $file for reading and writing: " . last_error());
}
flock($f, LOCK_EX);

$map = array();
foreach (explode("\n", stream_get_contents($f)) as $line) {
@list ($k, $v) = explode("=", $line);
if (!strlen($k) || !strlen($v)) continue;
$map[trim($k)] = trim($v);
}

$alias = trim(get_param('alias'));
if (strlen($alias) < 8) {
throw new Exception("Alias is too short.");
}

$url = get_param('url', null);
if ($url) {
$map[$alias] = $url;
fseek($f, 0, SEEK_SET);
ftruncate($f, 0);
foreach ($map as $k => $v) {
fwrite($f, "$k = $v\n");
}
flock($f, LOCK_UN);
fclose($f);
$url = '//'
. $_SERVER['HTTP_HOST']
. preg_replace('/\?.*/s', '', $_SERVER['REQUEST_URI'])
. '?alias=' . urlencode($alias);
echo ''
. ' . 'style="white-space:nowrap; font-family:Arial; font-size:14px" '
. 'href="' . htmlspecialchars($url) . '">'
. 'Permanent link to this hangout'
. '
'
. ''
. ''
. '';
} else {
flock($f, LOCK_UN);
fclose($f);
if (!isset($map[$alias])) {
throw new Exception("Cannot find the alias '" . $alias . "' to redirect to.");
}
header("Location: " . $map[$alias]);
exit();
}
}

// Returns the last PHP error message.
function last_error()
{
$e = error_get_last();
if ($e) {
return $e['message'];
} else {
return null;
}
}

// Returns GET parameter.
function get_param($name, $default = false)
{
$value = @$_GET[$name];
if ($value === null) {
if ($default !== false) {
$value = $default;
} else {
throw new Exception("Parameter missing: $name");
}
}
return $value;
}

// Call the main program.
try {
main();
} catch (Exception $e) {
echo $e->getMessage();
}

其他信息

ID gmknbicinclmgcjpehlboidgjjhiepih 版本 1.5.1 上次更新日期 2013年5月6日 大小 36.77KiB 语言 支持1 种语言 适用浏览器

谷歌浏览器、其他Chromium内核的浏览器

Google Hangout Keep Online Chrome插件下载

为打击盗链困扰,本站已启用人机验证
微信扫码关注左侧公众号,发送“插件”二字获得验证码,验证码5分钟全站有效