X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Futil.php;h=d461a0a0300473d99bcf3f3adc22b91015d1bdfe;hb=fba25b0d9810dac55a27feed173437a2a2f61364;hp=97a36296cffc548d111556b364767d54e3fe4f8e;hpb=61487d4cd0d85a24a2c4737fa90bfe71cb967212;p=quix0rs-gnu-social.git
diff --git a/lib/util.php b/lib/util.php
index 97a36296cf..d461a0a030 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -223,6 +223,14 @@ function common_show_header($pagetitle, $callable=NULL, $data=NULL, $headercall=
common_element_start('div', array('id' => 'content'));
}
+# XXX: Refactor w/common_user_error() ?
+function common_show_basic_auth_error() {
+ header('HTTP/1.1 401 Unauthorized');
+ header('Content-type: text/plain');
+ print("Could not authenticate you.\n"); # exactly what Twitter says
+ exit();
+}
+
function common_show_footer() {
global $xw, $config;
common_element_end('div'); # content div
@@ -548,7 +556,7 @@ function common_forgetme() {
# who is the current user?
function common_current_user() {
- if ($_REQUEST[session_name()]) {
+ if ($_REQUEST[session_name()] || $_SESSION && $_SESSION['userid']) {
common_ensure_session();
$id = $_SESSION['userid'];
if ($id) {
@@ -559,6 +567,11 @@ function common_current_user() {
}
# that didn't work; try to remember
$user = common_remembered_user();
+ common_debug("Got User " . $user->nickname);
+ if ($user) {
+ common_debug("Faking session on remembered user");
+ $_SESSION['userid'] = $user->id;
+ }
return $user;
}
@@ -593,8 +606,9 @@ define('URL_REGEX', '^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet
function common_render_content($text, $notice) {
$r = htmlspecialchars($text);
$id = $notice->profile_id;
- $r = preg_replace('@https?://\S+@', '\0', $r);
+ $r = preg_replace('@https?://[^)\]>\s]+@', '\0', $r);
$r = preg_replace('/(^|\s+)@([a-z0-9]{1,64})/e', "'\\1@'.common_at_link($id, '\\2')", $r);
+ $r = preg_replace('/^T ([A-Z0-9]{1,64}) /e', "'T '.common_at_link($id, '\\1').' '", $r);
# XXX: # tags
# XXX: machine tags
return $r;
@@ -864,16 +878,22 @@ function common_redirect($url, $code=307) {
}
function common_save_replies($notice) {
+ # Alternative reply format
+ if (preg_match('/^T ([A-Z0-9]{1,64}) /', $notice->content, $match)) {
+ $tname = $match[1];
+ }
# extract all @messages
$cnt = preg_match_all('/(?:^|\s)@([a-z0-9]{1,64})/', $notice->content, $match);
- if (!$cnt) {
+ if (!$cnt && !$tname) {
return true;
}
+ # XXX: is there another way to make an array copy?
+ $names = ($tname) ? array_unique(array_merge(array(strtolower($tname)), $match[1])) : array_unique($match[1]);
$sender = Profile::staticGet($notice->profile_id);
# store replied only for first @ (what user/notice what the reply directed,
# we assume first @ is it)
- for ($i=0; $icreated);
if (!$recipient) {
continue;
@@ -986,13 +1006,6 @@ function common_notice_form($action=NULL, $content=NULL) {
common_element_end('form');
}
-function common_mint_tag($extra) {
- global $config;
- return
- 'tag:'.$config['tag']['authority'].','.
- $config['tag']['date'].':'.$config['tag']['prefix'].$extra;
-}
-
# Should make up a reasonable root URL
function common_root_url() {
@@ -1049,7 +1062,6 @@ function common_ensure_syslog() {
static $initialized = false;
if (!$initialized) {
global $config;
- define_syslog_variables();
openlog($config['syslog']['appname'], 0, LOG_USER);
$initialized = true;
}
@@ -1280,4 +1292,20 @@ function common_profile_avatar_url($profile, $size=AVATAR_PROFILE_SIZE) {
return common_default_avatar($size);
}
}
-
\ No newline at end of file
+
+function common_profile_uri($profile) {
+ if (!$profile) {
+ return NULL;
+ }
+ $user = User::staticGet($profile->id);
+ if ($user) {
+ return $user->uri;
+ }
+
+ $remote = Remote_profile::staticGet($profile->id);
+ if ($remote) {
+ return $remote->uri;
+ }
+ # XXX: this is a very bad profile!
+ return NULL;
+}
\ No newline at end of file