1
0
Fork 0
mirror of git://git.psyced.org/git/psyced synced 2024-08-15 03:25:10 +00:00

_source_hack becomes _INTERNAL_source_IRC

This commit is contained in:
psyc://psyced.org/~lynX 2009-03-05 11:34:22 +01:00
parent 80d9a64071
commit 87d444e1a5
5 changed files with 107 additions and 102 deletions

View file

@ -330,7 +330,7 @@ case "privmsg":
// joe_nick +" :You're not registered yet.\n";
render("_error_necessary_registration",
"Sorry, you cannot use this without prior registration.", ([
"_source_hack": IRCGATE_NICK,
"_INTERNAL_source_IRC": IRCGATE_NICK,
"_nick_me" : joe_nick,
]));
return 1;
@ -821,7 +821,7 @@ msg(source, mc, data, mapping vars, showingLog, target) {
}
#else
// TODO: remove 'pm' logic?
vars["_source_hack"] = source;
vars["_INTERNAL_source_IRC"] = source;
vars["_nick_me"] = ni;
//send(source, psyctext(t, vars, data, source));
render(mca, data, vars, source);

View file

@ -241,7 +241,7 @@ w(string mc, string data, mapping vars, mixed source) {
// der raum uns ne kopie gibt.. ist auch gut so, denn der irc code
// versaut total die history der räume! einmal ein ircer
// drin gehabt und aus vars["_time_place"] sind _prefix'e geworden
// und _source_hack's sind im raum gespeichert und mehr so unsinn.
// und _INTERNAL_source_IRC's sind im raum gespeichert und mehr so unsinn.
if (mappingp(vars)) vars = copy(vars);
else vars = ([]);
// hmm.. wie die _time_place's aus der room history rausfallen
@ -302,7 +302,8 @@ w(string mc, string data, mapping vars, mixed source) {
return ::wAction(mc, data, vars
+ ([ "_action" : T("_TEXT_action_says", 0) ]),
source, "", vars["_nick"]);
#ifdef OLD_LOCAL_NICK_PLAIN_TEXTDB_HACK //{{{
#if 1 //def USE_THE_NICK
# ifdef OLD_LOCAL_NICK_PLAIN_TEXTDB_HACK //{{{
else if (vars["_nick_local"]) { // less work
if (mc == "_message_echo_public_action"
&& (t = vars["_INTERNAL_nick_plain"])) {
@ -318,11 +319,12 @@ w(string mc, string data, mapping vars, mixed source) {
sTextPath(0, v("language"), v("scheme"));
}
}
#else //}}}
# else //}}}
else if (vars["_nick_local"] &&
vars["_nick_local"] == vars["_nick"])
vars["_nick"] = vars["_INTERNAL_nick_plain"] || vars["_nick_verbatim"];
#endif
# endif
#endif // USE_THE_NICK
// if (vars["_nick_local"]) mc += "_masquerade"; // more work
di = printStyle(mc); // display infos
@ -372,32 +374,32 @@ w(string mc, string data, mapping vars, mixed source) {
#ifdef GHOST //{{{
// in S2S mode we are not supposed to deliver nick!user@host
// thus we use plain nicks or plain uniforms
vars["_source_hack"] = vars["_INTERNAL_nick_plain"] || vars["_nick"];
vars["_INTERNAL_source_IRC"] = vars["_INTERNAL_nick_plain"] || vars["_nick"];
#else //}}}
# if 0 // OLD // according to elmex "should never happen" happened...
if (vars["_nick"]) {
vars["_source_hack"] =
vars["_INTERNAL_source_IRC"] =
(vars["_INTERNAL_nick_plain"] || vars["_nick"])
+ "!"+ (vars["_nick_long"] || vars["_INTERNAL_nick_plain"]
|| vars["_nick"])
+"@" SERVER_HOST;
} else // should never happen
vars["_source_hack"] = to_string(source);
vars["_INTERNAL_source_IRC"] = to_string(source);
# else // EXPERIMENTAL
nick2 = vars["_INTERNAL_nick_plain"] || vars["_nick"];
vars["_source_hack"] = nick2 ? nick2
vars["_INTERNAL_source_IRC"] = nick2 ? nick2
+"!"+ (vars["_nick_long"] || vars["_INTERNAL_nick_plain"]
|| vars["_nick"]) +"@" SERVER_HOST
: to_string(source); // should never happen
# endif
} else if (abbrev("_echo_place_enter", mc)) {
vars["_source_hack"] = MYNICK + "!" + MYNICK + "@" SERVER_HOST;
vars["_INTERNAL_source_IRC"] = MYNICK + "!" + MYNICK + "@" SERVER_HOST;
#endif
} else {
#ifdef GHOST //{{{
// in S2S mode we are not supposed to deliver nick!user@host
// thus we use plain nicks or plain uniforms
vars["_source_hack"] = source;
vars["_INTERNAL_source_IRC"] = source;
#else //}}}
u = parse_uniform(source);
unless (u) {
@ -412,7 +414,7 @@ w(string mc, string data, mapping vars, mixed source) {
# ifdef ALIASES
if (raliases[source]) {
nick2 = raliases[source];
vars["_source_hack"] = nick2 +"!"+
vars["_INTERNAL_source_IRC"] = nick2 +"!"+
u[UNick]? u[UNick] +"@"+ u[UHost]
: (vars["_nick_long"]
|| vars["_INTERNAL_nick_plain"]
@ -422,22 +424,25 @@ w(string mc, string data, mapping vars, mixed source) {
unless (nick2) {
# endif
// should all of this go into our own copy of uni2nick() ?
// or should we keep protocol source hacks separate from
// people nicks in message templates?
switch (u[UScheme]) {
case "psyc":
if (u[UUser] || (u[UResource] && strlen(u[UResource])
&& u[UResource][0] == '~')) {
string tmp = u[UNick];
vars["_source_hack"] = u[UScheme] + "://"
vars["_INTERNAL_source_IRC"] = u[UScheme] + "://"
+ u[UHostPort] +"/~"+ tmp +"!"+ tmp +"@"
+ u[UHostPort];
P4(("w:psyc _source_hack %O\n", vars["_source_hack"]))
P4(("w:psyc _INTERNAL_source_IRC %O\n", vars["_INTERNAL_source_IRC"]))
} else {
vars["_source_hack"] = uniform2irc(source)
vars["_INTERNAL_source_IRC"] = uniform2irc(source)
+"!*@"+ (u[UHostPort] || "host.undefined");
// '*' nicer than 'undefined' and never a nick
// this happens a lot more often then we thought :(
// like for _request_version from server_unl
D1( unless(u[UHostPort]) PP(("irc/user %O source %O results in %O for %O\n", ME, source, vars["_source_hack"], mc)); )
D1( unless(u[UHostPort]) PP(("irc/user %O source %O results in %O for %O\n", ME, source, vars["_INTERNAL_source_IRC"], mc)); )
}
break;
case "jabber":
@ -453,22 +458,22 @@ w(string mc, string data, mapping vars, mixed source) {
P3(("changing source from %O to %O\n", source, vars["_location"]))
source = vars["_location"];
}
vars["_source_hack"] = uniform2irc(source)
vars["_INTERNAL_source_IRC"] = uniform2irc(source)
+ "!" + u[UUserAtHost];
#ifdef JABBER_PATH // MUC support..
// unfortunately, net/entity has rendered _nick unusable
if (vars["_nick_place"] && vars["_INTERNAL_source_resource"] && member(vars["_INTERNAL_source_resource"], ' ') != -1){
// xmpp: is here in cleartext.. TODO maybe?
vars["_source_hack"] = "xmpp:"+
vars["_INTERNAL_source_IRC"] = "xmpp:"+
uniform2irc(u[UUserAtHost]);
t = replace(vars["_INTERNAL_source_resource"], " ", "%20");
vars["_source_hack"] += "/" + t + "!" + u[UUserAtHost];
PT(("irc/user: XMPP source hack %O for %O\n", vars["_source_hack"], ME))
vars["_INTERNAL_source_IRC"] += "/" + t + "!" + u[UUserAtHost];
PT(("irc/user: XMPP source hack %O for %O\n", vars["_INTERNAL_source_IRC"], ME))
}
#endif
break;
default:
vars["_source_hack"] = source + "!*@*";
vars["_INTERNAL_source_IRC"] = source + "!*@*";
}
# ifdef ALIASES
}
@ -482,7 +487,7 @@ w(string mc, string data, mapping vars, mixed source) {
int l;
string output;
output =":"+ vars["_source_hack"] +" NOTICE "+ MYNICK +" :";
output =":"+ vars["_INTERNAL_source_IRC"] +" NOTICE "+ MYNICK +" :";
l = strlen(output);
output += "#PRESENCE "+ t +" "+ vars["_degree_mood"]
+" :"+ vars["_description_presence"] +"#\n";
@ -497,20 +502,20 @@ w(string mc, string data, mapping vars, mixed source) {
if (old <= AVAILABILITY_VACATION) {
if (t >= AVAILABILITY_NEARBY)
emit(":"+ vars["_source_hack"] +" JOIN :&HERE\n");
emit(":"+ vars["_INTERNAL_source_IRC"] +" JOIN :&HERE\n");
else if (t >= AVAILABILITY_AWAY)
emit(":"+ vars["_source_hack"] +" JOIN :&AWAY\n");
emit(":"+ vars["_INTERNAL_source_IRC"] +" JOIN :&AWAY\n");
} else if (old < AVAILABILITY_NEARBY) {
if (t >= AVAILABILITY_NEARBY) {
emit(":"+ vars["_source_hack"] +" PART :&AWAY\n");
emit(":"+ vars["_source_hack"] +" JOIN :&HERE\n");
emit(":"+ vars["_INTERNAL_source_IRC"] +" PART :&AWAY\n");
emit(":"+ vars["_INTERNAL_source_IRC"] +" JOIN :&HERE\n");
} else if (t < AVAILABILITY_AWAY)
emit(":"+ vars["_source_hack"] +" PART :&AWAY\n");
emit(":"+ vars["_INTERNAL_source_IRC"] +" PART :&AWAY\n");
} else {
if (t < AVAILABILITY_NEARBY)
emit(":"+ vars["_source_hack"] +" PART :&HERE\n");
emit(":"+ vars["_INTERNAL_source_IRC"] +" PART :&HERE\n");
if (t >= AVAILABILITY_AWAY)
emit(":"+ vars["_source_hack"] +" JOIN :&AWAY\n");
emit(":"+ vars["_INTERNAL_source_IRC"] +" JOIN :&AWAY\n");
}
# else
// ... MODE #whateverTesting +v xni3