| Home Page | Recent Changes | Preferences

LibHTTP/NewsFeed

class mutNewsFeed extends mutator;

var HttpSock hs;
var NewsFeed nf;

event prebeginplay()
{
    hs = spawn(class'LibHTTP.HttpSock');
    hs.OnComplete = DownloadCompleted;
    hs.OnError = DownloadError;
    nf = new class'LibHTTP.NewsFeed';
    Log("------ NewsFeed loaded --------");
}

function Mutate(string MutateString, PlayerController Sender)
{
    local array<string> mut;
    Super.Mutate(MutateString, Sender);
    Split(MutateString, " ", mut);
    if (mut[0] ~= "rdf")
    {
        if (mut[1] ~= "fetch")
        {
            if (Caps(nf.Source) != Caps(mut[2]))
            {
                nf.Source = mut[2];
                hs.HttpRequest(nf.Source);
                Level.Game.BroadcastHandler.BroadcastText(none, Sender, "RDF> Retreiving news ...");
            }
            else Log("RDF> News from"@nf.ChannelTitle@"available");
        }
        else {
            if (int(mut[1]) < nf.Entries.length)
                Level.Game.BroadcastHandler.BroadcastText(none, Sender, "NEWS>"@nf.ChannelTitle@" - "@nf.Entries[int(mut[1])].Title);
                else Level.Game.BroadcastHandler.BroadcastText(none, Sender, "RDF> Only"@nf.Entries.length@"news items available");
        }
    }
}

function DownloadCompleted()
{
    if (hs.LastStatus == 200)
    {
        nf.LastUpdate = hs.now();
        nf.ParseRDFData(hs.ReturnData);
        if (nf.Entries.length > 0) Level.Game.BroadcastHandler.Broadcast(self, "RDF> News from"@nf.ChannelTitle@"available");
    }
}

function OnError(string ErrorMessage, optional string Param1, optional string Param2)
{
    Level.Game.BroadcastHandler.Broadcast(self, "RDF> Download error:"@ErrorMessage@Param1@Param2);
}

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Image Uploads

Random Page

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

Mapping Topics

Mapping Lessons

UnrealEd Interface

Questions&Answers

Scripting Topics

Scripting Lessons

Making Mods

Class Tree

Questions&Answers

Modeling Topics

Questions&Answers

Log In