diff --git a/exec/load/avatar_lib.js b/exec/load/avatar_lib.js index 0a1ce85d1aa46f6efb7014c4382461a6ce4ca448..02d8ee57b4a5e433cc77521be1a41ca0c10f602e 100644 --- a/exec/load/avatar_lib.js +++ b/exec/load/avatar_lib.js @@ -192,7 +192,7 @@ function read_netuser(username, netaddr) return obj; } -function read(usernum, username, netaddr) +function read(usernum, username, netaddr, bbsid) { var usernum = parseInt(usernum, 10); var obj = cache_get(usernum >= 1 ? usernum : username, netaddr); @@ -202,8 +202,17 @@ function read(usernum, username, netaddr) obj = read_localuser(usernum); else if(!netaddr) obj = read_localuser(system.matchuser(username)); - else + else { obj = read_netuser(username, netaddr); + if(!obj && bbsid) + obj = read_netuser(username, bbsid); + if(!obj) { + var namehash = "md5:" + md5_calc(username); + obj = read_netuser(namehash, netaddr); + if(!obj && bbsid) + obj = read_netuser(namehash, bbsid); + } + } cache_set(usernum >= 1 ? usernum : username, obj, netaddr); return obj; } @@ -262,7 +271,7 @@ function is_enabled(obj) // Uses Graphic.draw() at an absolute screen coordinate function draw(usernum, username, netaddr, above, right, top) { - var avatar = this.read(usernum, username, netaddr); + var avatar = this.read(usernum, username, netaddr, usernum); if(!is_enabled(avatar)) return false; return draw_bin(avatar.data, above, right, top); @@ -297,7 +306,7 @@ function draw_bin(data, above, right, top) // Uses console.write() where-ever the cursor happens to be function show(usernum, username, netaddr) { - var avatar = this.read(usernum, username, netaddr); + var avatar = this.read(usernum, username, netaddr, usernum); if(!is_enabled(avatar)) return false; return show_bin(avatar.data); diff --git a/exec/showmsgavatar.js b/exec/showmsgavatar.js index b38162bac6476e365d02c053a77169867e6e5542..b09416f3715cb3297fe1acd907f999ab5ea130ba 100644 --- a/exec/showmsgavatar.js +++ b/exec/showmsgavatar.js @@ -50,7 +50,8 @@ if(!(bbs.msg_attr&bbs.mods.smbdefs.MSG_ANONYMOUS)) { if(!bbs.mods.avatar_lib) bbs.mods.avatar_lib = load({}, 'avatar_lib.js'); var options = get_options(); - var success = bbs.mods.avatar_lib.draw(bbs.msg_from_ext, bbs.msg_from, bbs.msg_from_net + var success = bbs.mods.avatar_lib.draw(bbs.msg_from_ext || bbs.msg_from_bbsid + ,bbs.msg_from, bbs.msg_from_net ,options.msghdr_draw_above, options.msghdr_draw_right ,options.msghdr_draw_top && bbs.msghdr_top_of_screen); if(!success && bbs.smb_sub_code) {