.id
3380
.gutitle
qi_get_social_data
.title
qi_get_social_data
.file
.extension
.name
|/routinetype-utility|
.user_id
7
.notes
.body
<fake_person> <BREAK> </fake_person>

<ensure variable="att.user_id" value="#client_id#">
<if att.user_id EQ client_id>
<var C = GLOBAL.Def.Client>
<else>
<set j="/user-#att.user_id#.users">
<var C = set>
</set>
</if>

<var ret = StructNew()>
<var ret.Friends = structNew()><!--- friends are mutual followers --->
<var ret.Friends.total = 0>
<var ret.Friends.jstr = "">
<var ret.Friends.intList = "0">
<var ret.Following = structNew()><!--- following: people you are following who are NOT following you --->
<var ret.Following.total = 0>
<var ret.Following.jstr = "">
<var ret.Following.intList = "0">
<var _intlist = makeValidIntList(replace(C.users,"|",",","all"))>
<if _intlist NEQ 0>
<set orb="user" select="user.id" where="user.id IN (#_intlist#)" orderby="user.so_lastupdated DESC">
<var ret.Following.total = set.recordcount>
<setcrawl>
<var ret.Following.jstr = ret.Following.jstr & "-" & set.id>
</setcrawl>
<var _tst = replace(ret.Following.jstr,"-","")>
<if listLen(_tst,"-") LT listLen(_intlist) AND C.id EQ client_id>
<!--- clean up: they are following at least one nonexistent user --->
<var _proper = "">
<loop list="#_tst#" index="i" delimiters="-">
<var _proper = _proper & "|#i#|#CHR(10)#">
</loop>
<update orb="user" where="user.id = #C.id#"
users="#_proper#">
<var QuerySetCell(GLOBAL.Def.CLIENT,"users",_proper)>
<var C = Duplicate(GLOBAL.Def.CLIENT)>
</if>
</set>
</if>
<var ret.Followers = structNew()><!--- followers: people who are following you who you are NOT following --->
<var ret.Followers.total = 0>
<var ret.Followers.jstr = "">
<var ret.Followers.intList = "0">
<set orb="user" select="user.id" where="user.users LIKE('%|#C.id#|%')" orderby="user.so_lastupdated DESC">
<setcrawl>
<if listFind(ret.Following.jstr,set.id,"-") GT 0>
<!--- this is a mutual follower (friend) --->
<var ret.Friends.total = ret.Friends.total + 1>
<var ret.Friends.jstr = ret.Friends.jstr & "-" & set.id>
<var ret.Following.total = ret.Following.total - 1>
<var ret.Following.jstr = reReplace(ret.Following.jstr,"-(#set.id#)(?![0-9])","")>
<else>
<!--- this is just a follower --->
<var ret.Followers.total = ret.Followers.total + 1>
<var ret.Followers.jstr = ret.Followers.jstr & "-" & set.id>
</if>
</setcrawl>
</set>

<var ret.Friends.intList = makeValidIntList(replace(ret.Friends.jstr,"-",",","all"))>
<var ret.Following.intList = makeValidIntList(replace(ret.Following.jstr,"-",",","all"))>
<var ret.Followers.intList = makeValidIntList(replace(ret.Followers.jstr,"-",",","all"))>


<return ret>
 
.sum_double
0.00
.producttype
.productincludes
.physical_unsignedint
0
.isprotected_unsignedint
0
.overridesiteheader_unsignedint
0