Journalism/Newscaster Overhaul, Take One (#4857)

Newscaster stories can now be multiple lines long and contain pencode formatting.
You can now post and view comments on individual newscaster stories.
Newscaster stories have slightly neater styling.
You can now like and dislike newscaster stories, and these are tracked per-story.
Journalists are now their own role, with a Security Correspondent alt-title.
The merchandise store (when has it ever been used?) has been replaced with a journalist's office.
The journalist has a pet spiderling in a jar, named Peter. He's harmless. Probably.
This commit is contained in:
MarinaGryphon
2018-06-17 12:18:15 +03:00
committed by Erki
parent 46a29f75e0
commit 9923213335
19 changed files with 1701 additions and 1007 deletions
+12 -3
View File
@@ -444,11 +444,12 @@ proc/admin_notice(var/message, var/rights)
var/i = 0
for(var/datum/feed_message/MESSAGE in src.admincaster_feed_channel.messages)
i++
dat+="-[MESSAGE.body] <BR>"
dat+="<BLOCKQUOTE style=\"padding:4px;border-left:4px #797979 solid\">[MESSAGE.body] <FONT SIZE=1>\[Likes: <A href='?src=\ref[src];ac_setlikes=1;'><FONT COLOR='DarkGreen'>[MESSAGE.likes]</FONT></A> Dislikes: <A href='?src=\ref[src];ac_setdislikes=1;'><FONT COLOR='maroon'>[MESSAGE.dislikes]</FONT></A>\]</FONT><BR>"
if(MESSAGE.img)
usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png")
dat+="<img src='tmp_photo[i].png' width = '180'><BR><BR>"
dat+="<FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR>"
dat+="<FONT SIZE=1><A href='?src=\ref[src];ac_view_comments=1;ac_story=\ref[MESSAGE]'>View Comments</A> <A href='?src=\ref[src];ac_add_comment=1;ac_story=\ref[MESSAGE]'>Add Comment</A> <A href='?src=\ref[src];ac_like=1;ac_story=\ref[MESSAGE]'>Like Story</A> <A href='?src=\ref[src];ac_dislike=1;ac_story=\ref[MESSAGE]'>Dislike Story</A></FONT><BR>"
dat+="<FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author] - [MESSAGE.time_stamp]</FONT>\]</FONT></BLOCKQUOTE><BR>"
dat+={"
<BR><HR><A href='?src=\ref[src];ac_refresh=1'>Refresh</A>
<BR><A href='?src=\ref[src];ac_setScreen=[1]'>Back</A>
@@ -571,8 +572,16 @@ proc/admin_notice(var/message, var/rights)
<FONT COLOR='green'>Wanted issue for [src.admincaster_feed_message.author] successfully edited.</FONT><BR><BR>
<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Return</A><BR>
"}
if(20) //comments but with more censorship!
dat+="<B>Comments:</B></BR>"
if(isemptylist(src.admincaster_viewing_message.comments))
dat+="No comments on this story yet!</BR>"
else
for(var/datum/feed_comment/COMMENT in src.admincaster_viewing_message.comments)
dat+="<BLOCKQUOTE style=\"padding:2px 4px;border-left:4px #797979 solid;\"><B>\[[world.time]\] [COMMENT.author]:</B>[COMMENT.message]<BR><A href='?src=\ref[src];ac_censorcomment=1;ac_comment=\ref[COMMENT]>Censor Comment</A></BLOCKQUOTE>"
dat+="<A href='?src=\ref[src];ac_setScreen=[9]'>Return</A>"
else
dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com"
dat+="Please report this on GitHub, along with what you did to make this appear."
//world << "Channelname: [src.admincaster_feed_channel.channel_name] [src.admincaster_feed_channel.author]"
//world << "Msg: [src.admincaster_feed_message.author] [src.admincaster_feed_message.body]"
+1
View File
@@ -13,6 +13,7 @@ var/list/admin_datums = list()
var/admincaster_screen = 0 //See newscaster.dm under machinery for a full description
var/datum/feed_message/admincaster_feed_message = new /datum/feed_message //These two will act as holders.
var/datum/feed_channel/admincaster_feed_channel = new /datum/feed_channel
var/datum/feed_message/admincaster_viewing_message = null
var/admincaster_signature //What you'll sign the newsfeeds as
var/list/watched_processes // Processes marked to be shown in Status instead of just Processes.
+60
View File
@@ -1491,6 +1491,66 @@
else if(href_list["ac_set_signature"])
src.admincaster_signature = sanitize(input(usr, "Provide your desired signature", "Network Identity Handler", ""))
src.access_news_network()
else if(href_list["ac_add_comment"])
var/com_msg = sanitize(input(usr, "Write your Comment", "Network Comment Handler", "") as message, encode = 0, trim = 0, extra = 0)
var/datum/feed_message/viewing_story = locate(href_list["ac_story"])
if(!istype(viewing_story))
return
var/datum/feed_comment/comment = new
comment.author = src.admincaster_signature
comment.message = com_msg
comment.posted = "[worldtime2text()]"
viewing_story.comments += comment
to_chat(usr, "Comment successfully added!")
src.admincaster_screen = 20
src.access_news_network()
else if(href_list["ac_view_comments"])
var/datum/feed_message/viewing_story = locate(href_list["ac_story"])
if(!istype(viewing_story))
return
src.admincaster_screen = 20
src.admincaster_viewing_message = viewing_story
src.access_news_network()
else if(href_list["ac_like"])
var/datum/feed_message/viewing_story = locate(href_list["ac_story"])
if((src.admincaster_signature in viewing_story.interacted) || !istype(viewing_story))
return
viewing_story.interacted += src.admincaster_signature
viewing_story.likes += 1
src.access_news_network()
else if(href_list["ac_dislike"])
var/datum/feed_message/viewing_story = locate(href_list["ac_story"])
if((src.admincaster_signature in viewing_story.interacted) || !istype(viewing_story))
return
viewing_story.interacted += src.admincaster_signature
viewing_story.dislikes += 1
src.access_news_network()
else if(href_list["ac_setlikes"])
var/datum/feed_message/viewing_story = locate(href_list["ac_story"])
if(!istype(viewing_story))
return
var/amount = input(usr, "Provide your desired number of likes", "Network Social Manager", "") as num
viewing_story.likes = amount
src.access_news_network()
else if(href_list["ac_setdislikes"])
var/datum/feed_message/viewing_story = locate(href_list["ac_story"])
if(!istype(viewing_story))
return
var/amount = input(usr, "Provide your desired number of dislikes", "Network Social Manager", "") as num
viewing_story.dislikes = amount
src.access_news_network()
else if(href_list["ac_censorcomment"])
var/datum/feed_comment/comment = locate(href_list["ac_comment"])
if(!istype(comment))
return
comment.message = "\[REDACTED\]"
src.admincaster_screen = 20
src.access_news_network()
else if(href_list["populate_inactive_customitems"])
if(check_rights(R_ADMIN|R_SERVER))