parsav  Diff

Differences From Artifact [1f18c83945]:

To Artifact [880ce531e5]:


     8      8   
     9      9   local terra 
    10     10   render_media_gallery(co: &lib.srv.convo, path: lib.mem.ptr(lib.mem.ref(int8)), uid: uint64, acc: &lib.str.acc)
    11     11    -- note that when calling this function, path must be adjusted so that path(0)
    12     12    -- eq "media"
    13     13   	var owner = false
    14     14   	if co.aid ~= 0 and co.who.id == uid then owner = true end
    15         -	var ou = co.srv:actor_fetch_uid(uid)
    16         -	if not ou then goto e404 end
    17         -	do defer ou:free()
           15  +	var ou = co:uid2actor(uid)
           16  +	if ou == nil then goto e404 end
           17  +	do -- defer ou:free()
    18     18   		var pfx = pstr.null()
    19     19   		if not owner then
    20     20   			var pa = co:stra(32)
    21     21   			pa:lpush('/')
    22         -			if ou(0).origin ~= 0 then pa:lpush('@') end
    23         -			pa:push(ou(0).xid,0)
           22  +			if ou.origin ~= 0 then pa:lpush('@') end
           23  +			pa:push(ou.xid,0)
    24     24   			pfx = pa:finalize()
    25     25   		end
    26     26   
    27     27   		if path.ct >= 3 and path(1):cmp('a') then
    28     28   			var id, idok = lib.math.shorthand.parse(path(2).ptr, path(2).ct)
    29     29   			if not idok then goto e404 end
    30     30   			var art = co.srv:artifact_fetch(uid, id)
................................................................................
   127    127   
   128    128   			if folders.ct > 0 then
   129    129   				var fa = co:stra(128)
   130    130   				var fldr = co:pgetv('folder')
   131    131   				for i=0,folders.ct do
   132    132   					var ule = lib.html.urlenc(&co.srv.pool,folders(i), true) -- defer ule:free()
   133    133   					var san = lib.html.sanitize(&co.srv.pool,folders(i), true) -- defer san:free()
   134         -					fa:lpush('<a href="'):ppush(pfx):lpush('/media?folder='):ppush(ule)
          134  +					fa:lpush('<a class="button" href="'):ppush(pfx):lpush('/media?folder='):ppush(ule)
   135    135   						:lpush('">'):ppush(san):lpush('</a>')
   136    136   					lib.dbg('checking folder ',{fldr.ptr,fldr.ct},' against ',{folders(i).ptr,folders(i).ct})
   137    137   					if fldr:ref() and folders(i):cmp(fldr)
   138    138   						then folder = folders(i) lib.dbg('folder match ',{fldr.ptr,fldr.ct})
   139    139   						else folders(i):free()
   140    140   					end
   141    141   				end
   142    142   				fa:lpush('<hr>')
   143    143   				view.folders = fa:finalize()
   144    144   				folders:free()
   145    145   			end
   146    146   
   147    147   			if owner then
   148         -				view.menu = '<a class="pos" href="/media/upload">upload</a><hr>'
          148  +				view.menu = '<a class="pos button" href="/media/upload">upload</a><hr>'
   149    149   			end
   150    150   
   151    151   			var md = co.srv:artifact_enum_uid(uid, folder)
   152    152   			var gallery: lib.str.acc gallery:pool(&co.srv.pool,256)
   153    153   			var files: lib.str.acc files:pool(&co.srv.pool,256) 
   154    154   			for i=0,md.ct do
   155    155   				var desc = lib.smackdown.html(&co.srv.pool,pstr{md(i)(0).desc,0}, true) --defer desc:free()