Esempio n. 1
0
        public void DisplayWall()
        {
            var graffitiList = _bbsDataCore.GetGraffiti();

            if (_bbs.FileExistsForTermType("graffiti_top"))
            {
                _bbs.SendFileForTermType("graffiti_top", true);
            }
            else
            {
                _bbs.Write("~l2~d6" + Utils.Center("GRAFFITI WALL", _bbs.terminalType.Columns()) + "~d0");
            }
            if ((graffitiList != null) && (graffitiList.Count > 0))
            {
                foreach (var graffitiEntry in graffitiList)
                {
                    _bbs.WriteLine("~ce" + graffitiEntry.Item1 + "~c1:~c7" + graffitiEntry.Item2);
                }
            }
            else
            {
                _bbs.WriteLine("~c1Nothing Found");
            }
            _bbs.WriteLine("~d6" + Utils.SPC(_bbs.terminalType.Columns()) + "~d0");
        }
Esempio n. 2
0
 public UDBases(BBS bbs, BBSDataCore bbsDataCore)
 {
     _bbs         = bbs;
     _bbsDataCore = bbsDataCore;
     Current_Area = -1;
     //Current_Parent_Area = -1;
     _bbs.SendFileForTermType("udbase_entry_root", true);
     CMD_List();
 }
Esempio n. 3
0
 public PFiles(BBS bbs, BBSDataCore bbsDataCore)
 {
     _bbs              = bbs;
     _bbsDataCore      = bbsDataCore;
     _bbs.CurrentArea  = "PFiles";
     _currentPFileArea = null;
     _bbs.SendFileForTermType("pfile_entry_root", false);
     CmdList();
 }
Esempio n. 4
0
        public bool Application()
        {
            var result = false;

            //var quitflag = false;
            try
            {
                //Show new user file
                _bbs.SendFileForTermType("NewUser", true);
                if (!GetUsername())
                {
                    return(false);
                }
                if (!GetPassword())
                {
                    return(false);
                }
                RealName = GetField("Real Name", "~l2~cbEnter your real name.", 0);
                if (RealName == null)
                {
                    return(false);
                }
                Email = GetField("Email", "~l2~cbEnter your email address.", 0);
                if (Email == null)
                {
                    return(false);
                }
                ComputerType = GetField("Computer", "~l2~cbEnter your computer model.", 0);
                if (ComputerType == null)
                {
                    return(false);
                }
                var user = _bbsDataCore.SaveNewUser(Username, Password, RealName, Email, ComputerType, _bbs._remoteAddress, "");
                if (user != null)
                {
                    _bbs.currentUser = user;
                }

                //New User feedback
                _bbs.Write("~l2~cbLeave an introduction message?");
                if (_bbs.YesNo(true, true))
                {
                    var lineEditor = new Line_Editor(_bbs);
                    if (lineEditor.Edit(null))
                    {
                        _bbsDataCore.NewFeedback("New User Feedback", lineEditor.GetMessage(), _bbs.currentUser.Id);
                    }
                }
                //And Done
                result = true;
            }
            catch (Exception e)
            {
                LoggingAPI.LogEntry("Exception in NewUser.Application: " + e.ToString());
            }
            return(result);
        }
Esempio n. 5
0
        public void Prompt()
        {
            bool quitflag = false;

            while ((!quitflag) && _bbs.Connected)
            {
                //Show Main Prompt
                _bbs.Write("~l1~c1SysOp~c2:~c7");
                string command = _bbs.Input(true, false, false);
                if (command.Length == 1)
                {
                    switch (command.Substring(0, 1).ToUpper())
                    {
                    case "H":
                        _bbs.SendFileForTermType("sysop_help", true);
                        break;

                    case "Q":
                        quitflag = true;
                        break;

                    default:
                        _bbs.WriteLine("~l1~d2Unknown command.~d0~c1");
                        break;
                    }
                }
                else
                {
                    if (command.Length >= 2)
                    {
                        switch (command.Substring(0, 2).ToUpper())
                        {
                        case "LG":     //List Access Groups
                            CMD_ListGroups();
                            break;

                        case "AG":     //Add Access Group
                            CMD_ListGroups();
                            break;

                        case "EG":     //Edit Access Group
                            CMD_ListGroups();
                            break;

                        case "RG":     //Remove Access Group
                            CMD_ListGroups();
                            break;

                        default:
                            _bbs.WriteLine("~l1~d2Unknown command.~d0~c1");
                            break;
                        }
                    }
                }
            }
        }
Esempio n. 6
0
 public MessageBases(BBS bbs, BBSDataCore bbsDataCore)
 {
     _bbs         = bbs;
     _bbsDataCore = bbsDataCore;
     Current_Area = -1;
     //Current_Parent_Area = -1;
     _bbs.SendFileForTermType("messagebase_entry_root", true);
     CMD_List();
     RecalculatePath();
 }
Esempio n. 7
0
        private void HandleCommand(string command)
        {
            _bbs.WriteLine();
            switch (command.ToUpper()[0])
            {
            case 'H':
                _bbs.SendFileForTermType("pfile_help", true);
                break;

            case 'L':
                CmdList();
                break;

            case '/':
                if (_currentPFileArea != null)
                {
                    CmdAreaChange(_currentPFileArea.ParentAreaId);
                }
                break;

            case 'Q':
                _quitFlag = true;
                break;

            case 'T':
                CmdRun("PFiles/Empire.dll");
                break;

            default:
                if (_bbs.SysopIdentified)
                {
                    HandleSysOpCommand(command);
                }
                else
                {
                    _bbs.WriteLine("~l1~d2Unknown command.~d0~c1");
                }
                break;
            }
        }
Esempio n. 8
0
        public void DisplayNews()
        {
            List <NewsItem> newsItems = _bbsDataCore.GetNews(_bbs.currentUser.LastDisconnection);

            if (_bbs.FileExistsForTermType("news_top"))
            {
                _bbs.SendFileForTermType("news_top", true);
            }
            else
            {
                _bbs.Write("~l2~d4" + Utils.Center("NEWS", _bbs.terminalType.Columns()) + "~d0");
            }
            if ((newsItems != null) && (newsItems.Count > 0))
            {
                foreach (NewsItem newsItem in newsItems)
                {
                    _bbs.WriteLine("~l1");
                    _bbs.WriteLine("~c1Subject: ~c7" + newsItem.Subject);
                    _bbs.WriteLine("~c1Date: ~c7" + newsItem.Sent.ToString("yy-MM-dd HH:mm") + "~c2");
                    _bbs.Write(Utils.Repeat('\xc0', _bbs.terminalType.Columns()));
                    _bbs.Write("~c1");
                    string[] splitarray = { "~\xff~" };
                    string[] lines      = newsItem.Body.TrimEnd("~\xff".ToCharArray()).Split(splitarray, StringSplitOptions.None);
                    foreach (string s in lines)
                    {
                        if (s != "")
                        {
                            _bbs.WriteLine(s);
                        }
                    }
                    _bbs.Write("~c4");
                }
            }
            else
            {
                _bbs.WriteLine("~c1Nothing Found");
            }
            _bbs.WriteLine("~d4" + Utils.Center("END OF NEWS", _bbs.terminalType.Columns()) + "~d0");
        }
Esempio n. 9
0
        public void ShowLastTenCalls()
        {
            _bbs.currentArea = "Viewing Last 10 Callers";
            var callList = _bbsDataCore.GetLastTenCalls();

            if ((callList != null) && (callList.Count > 0))
            {
                if (_bbs.FileExistsForTermType("last10_top"))
                {
                    _bbs.SendFileForTermType("last10_top", true);
                }
                else
                {
                    _bbs.Write("~s1~d5" + Utils.Center("LAST 10 CALLERS", _bbs.terminalType.Columns()) + "~d0");
                }
                foreach (var call in callList)
                {
                    _bbs.WriteLine("~cd" + call.Item1 + "~c1:~c7" + call.Item2);
                }

                _bbs.WriteLine("~d5" + Utils.SPC(_bbs.terminalType.Columns()) + "~d0");
            }
        }
Esempio n. 10
0
        public void Prompt()
        {
            bool quitflag = false;

            while ((!quitflag) && _bbs.Connected)
            {
                //Show Main Prompt
                if (!_bbs.expertMode)
                {
                    _bbs.WriteLine("~l1~c7? ~c1Menu, ~c7H~c1elp~c2, ~c7L~c1ist~c2, ~c7Q~c1uit");
                }
                else
                {
                    _bbs.WriteLine();
                }
                if (CurrentUDBase > -1)
                {
                    _bbs.Write("~c1UDBases~c2:~c7");
                }
                else
                {
                    _bbs.Write("~c1UDBases~c2:~c7");
                }
                string command = _bbs.Input(true, false, false);
                if (command.Length > 0)
                {
                    if ("0123456789".Contains(command.Substring(0, 1)))
                    {
                        if (CurrentUDBase == -1)
                        {
                            //Select item.
                            IdAndKeys selectedItem = Current_Area_List.FirstOrDefault(p => p.Keys["listid"].Equals(command));
                            if (selectedItem != null)
                            {
                                if (selectedItem.Keys["type"] == "area")
                                {
                                    _bbs.WriteLine("~l1~c7Changing to Area: " + selectedItem.Keys["title"] + "~p1");
                                    ChangeToArea(selectedItem.Id);
                                }
                                else
                                {
                                    _bbs.WriteLine("~l1~c7Changing to UDBase: " + selectedItem.Keys["title"] + "~p1");
                                    ChangeToUDBase(selectedItem.Id);
                                }
                            }
                        }
                        else
                        {
                            //We're in a udbase \
                            //CMD_DetailsByFileId(int.Parse(command));
                        }
                    }
                    else
                    {
                        switch (command.ToUpper()[0])
                        {
                        case 'H':
                            if (CurrentUDBase == -1)
                            {
                                _bbs.SendFileForTermType("udarea_help", true);
                            }
                            else
                            {
                                _bbs.SendFileForTermType("udbase_help", true);
                            }
                            break;

                        case '?':
                            if (CurrentUDBase == -1)
                            {
                                _bbs.SendFileForTermType("udarea_menu", true);
                            }
                            else
                            {
                                _bbs.SendFileForTermType("udbase_menu", true);
                            }
                            break;

                        case 'L':
                            CMD_List();
                            break;

                        case '/':
                            if (CurrentUDBase > -1)
                            {
                                CurrentUDBase = -1;
                                CMD_List();
                            }
                            else
                            {
                                if (Current_Area > -1)
                                {
                                    CurrentUDBase = -1;
                                    IdAndKeys mba = _bbsDataCore.UDBase_ParentArea(Current_Area);
                                    _bbs.WriteLine("~l1~c7Changing to Area: " + mba.Keys["title"] + "~p1");
                                    ChangeToArea(mba.Id);
                                }
                                else
                                {
                                    _bbs.WriteLine("~l1~d2Already at top level.~d0");
                                }
                            }
                            break;

                        case 'U':
                            if (CurrentUDBase == -1)
                            {
                                _bbs.WriteLine("~l1~d1Select a UD base.~d0");
                            }
                            else
                            {
                                CMD_Upload();
                            }
                            break;

                        case 'Q':
                            quitflag = true;
                            break;

                        case 'D':
                            //Download
                            if (command.Length == 1)
                            {
                                _bbs.Write("~c1File Number~c2:~c7");
                                int i = _bbs.InputNumber(3);
                                if (i > -1)
                                {
                                    CMD_Download(i.ToString());
                                }
                            }
                            else
                            {
                                CMD_Download(command.Substring(1, command.Length - 1));
                            }
                            break;
                        }
                    }
                }
            }
        }
Esempio n. 11
0
        public void Prompt()
        {
            bool quitflag = false;

            while ((!quitflag) && _bbs.Connected)
            {
                //Show Main Prompt
                _bbs.WriteLine("~l1" + Path);
                if (!_bbs.expertMode)
                {
                    _bbs.WriteLine("~c7? ~c1Menu, ~c7H~c1elp~c2, ~c7L~c1ist~c2, ~c7Q~c1uit");
                }
                else
                {
                    _bbs.WriteLine();
                }
                if (CurrentMessageBase > -1)
                {
                    _bbs.Write("~c1Bases~c2:~c7");
                }
                else
                {
                    _bbs.Write("~c1Bases~c2:~c7");
                }
                string command = _bbs.Input(true, false, false);
                if (command.Length > 0)
                {
                    if ("0123456789".Contains(command.Substring(0, 1)))
                    {
                        if (CurrentMessageBase == -1)
                        {
                            //Select item.
                            IdAndKeys selectedItem = Current_Area_List.FirstOrDefault(p => p.Keys["listid"].Equals(command));
                            if (selectedItem != null)
                            {
                                if (selectedItem.Keys["type"] == "area")
                                {
                                    _bbs.WriteLine("~l1~c7Changing to Area: " + selectedItem.Keys["title"] + "~p1");
                                    ChangeToArea(selectedItem.Id);
                                }
                                else
                                {
                                    _bbs.WriteLine("~l1~c7Changing to Message Base: " + selectedItem.Keys["title"] + "~p1");
                                    ChangeToMessageBase(selectedItem.Id);
                                }
                            }
                        }
                        else
                        {
                            //We're in a messagebase \
                            CMD_ReadThreadByListId(int.Parse(command));
                        }
                    }
                    else
                    {
                        switch (command.ToUpper()[0])
                        {
                        case 'H':
                            if (CurrentMessageBase == -1)
                            {
                                _bbs.SendFileForTermType("messagearea_help", true);
                            }
                            else
                            {
                                _bbs.SendFileForTermType("messagebase_help", true);
                            }
                            break;

                        case '?':
                            if (CurrentMessageBase == -1)
                            {
                                _bbs.SendFileForTermType("messagearea_menu", true);
                            }
                            else
                            {
                                _bbs.SendFileForTermType("messagebase_menu", true);
                            }
                            break;

                        case 'L':
                            CMD_List();
                            break;

                        case '/':
                            if (CurrentMessageBase > -1)
                            {
                                CurrentMessageBase = -1;
                                RecalculatePath();
                                CMD_List();
                            }
                            else
                            {
                                if (Current_Area > -1)
                                {
                                    CurrentMessageBase = -1;
                                    IdAndKeys mba = _bbsDataCore.MessageBase_ParentArea(Current_Area);
                                    _bbs.WriteLine("~l1~c7Changing to Area: " + mba.Keys["title"] + "~p1");
                                    ChangeToArea(mba.Id);
                                }
                                else
                                {
                                    _bbs.WriteLine("~l1~d2Already at top level.~d0");
                                }
                            }
                            break;

                        case 'P':
                            if (CurrentMessageBase == -1)
                            {
                                _bbs.WriteLine("~l1~d1Select a message base.~d0");
                            }
                            else
                            {
                                CMD_Post();
                            }
                            break;

                        case 'Q':
                            quitflag = true;
                            break;

                        case 'R':
                            // "Unread" means the message id does not appear in the
                            // R = Read next unread message
                            // RA = Read all messages in all threads
                            // RA# = Read all messages in specified thread
                            // R# = Read unread messages in specified thread
                            // R#,# = Read specified message in specified thread
                            // RN = Read unread messages in all threads with unread messages
                            if (CurrentMessageBase == -1)
                            {
                                _bbs.WriteLine("~l1~d1Select a message base.~d0");
                            }
                            else
                            {
                                if (command.Length > 1)
                                {
                                    if (command.ToUpper()[1] == 'A')
                                    {
                                        //RA, RA#
                                    }
                                    else
                                    {
                                        if (command.ToUpper()[1] == 'N')
                                        {
                                            //RN,RN#
                                        }
                                        else
                                        {
                                            if ("1234567890".Contains(command.ToUpper()[1]))
                                            {
                                                //R#
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    CMD_ReadNextUnread();
                                }
                            }
                            break;
                        }
                    }
                }
            }
        }
Esempio n. 12
0
        public void MainPrompt()
        {
            bool quitflag = false;

            while ((!quitflag) && _bbs.Connected)
            {
                if (!_bbs.overrideDoNotDisturb)
                {
                    _bbs.doNotDisturb = false;
                }
                //Show Main Prompt
                if (!_bbs.expertMode)
                {
                    if (_bbs.terminalType.Columns() == 40)
                    {
                        _bbs.WriteLine("~l2~c7? ~c1Menu~c2,~c7H~c1elp~c2,~c7B~c1ases~c2,~c7G~c1Files~c2,~c7P~c1Files~c2,~c7Q~c1uit");
                    }
                    else
                    {
                        _bbs.WriteLine("~l2~c7? ~c1Help~c2, ~c7B~c1ases~c2, ~c7U~c1DBases~c2, ~c7G~c1Files~c2, ~c7P~c1Files~c2, ~c7Q~c1uit");
                    }
                }
                else
                {
                    _bbs.WriteLine();
                }
                _bbs.currentArea = "Main Prompt";
                _bbs.Write("~c1Main~c2:~c7");
                string command = _bbs.Input(true, false, false, true, 10);
                if (command.Length > 0)
                {
                    switch (command.ToString().ToUpper())
                    {
                    case "?":
                        _bbs.SendFileForTermType("MainMenu", true);
                        break;

                    case "B":
                        MessageBases mb = new MessageBases(_bbs, _bbsDataCore);
                        mb.Prompt();
                        break;

                    case "DND":
                        CMD_DND();
                        break;

                    case "F":
                        CMD_Feedback();
                        break;

                    case "G":
                        try
                        {
                            GFiles gf = new GFiles(_bbs, _bbsDataCore);
                            gf.Prompt();
                        }
                        catch (Exception e)
                        {
                            LoggingAPI.LogEntry("Exception in Main.MainPrompt: " + e);
                            //Log this?
                        }
                        break;

                    case "P":
                        try
                        {
                            PFiles pf = new PFiles(_bbs, _bbsDataCore);
                            pf.Prompt();
                        }
                        catch (Exception e)
                        {
                            LoggingAPI.LogEntry("Exception in Main.MainPrompt: " + e);
                            //Log this?
                        }
                        break;

                    case "Q!":
                        quitflag = true;
                        break;

                    case "Q":
                        CMD_Feedback();
                        _bbs.Write("~l1~c1Leave one-liner?");
                        if (_bbs.YesNo(true, true))
                        {
                            _bbs.GraffitiWall.AddLine(_bbs.CurrentUser.Id);
                        }
                        quitflag = true;
                        break;

                    case "SY":
                        //If the current user has any groups that would allow sysop access
                        if (_bbs.currentUser.UserAccessGroups.Any(p => p.AccessGroup.AllowSysOp))
                        {
                            _bbs.Write("~l1~c1Password:~c7");
                            string sy = _bbs.Input(true, true, false);
                            if (sy.ToUpper() == _bbsConfig.SysOpMenuPassword.ToUpper())
                            {
                                _bbs.sysopIdentified = true;
                                SysOp sys = new SysOp(_bbs, _bbsDataCore);
                                sys.Prompt();
                            }
                            else
                            {
                                _bbs.WriteLine("~l1~d2Invalid password.  F**k off.~d0~c1");
                            }
                        }
                        else
                        {
                            _bbs.WriteLine("~l1~d2Unknown command.~d0~c1");
                        }
                        break;

                    case "UD":
                    case "U":
                        UDBases ud = new UDBases(_bbs, _bbsDataCore);
                        ud.Prompt();
                        //break;
                        //UDBases ud = new UDBases(bbs);
                        //ud.Prompt();
                        break;


                    case "WHO":
                        CMD_Who();
                        break;

                    case "X":
                        _bbs.expertMode = !_bbs.expertMode;
                        _bbs.WriteLine("~l1~c1Expert mode is ~c7" + (_bbs.expertMode ? "ON" : "OFF") + "~c1.");
                        break;

                    default:
                        //Test multi-part commands
                        if (command.Length > 3 && command.Substring(0, 3).ToUpper() == "OLM")
                        {
                            CMD_OLM(command);
                        }
                        else if (command.Length > 3 && command.Substring(0, 3).ToUpper() == "SLM")
                        {
                            CMD_SLM(command);
                        }
                        else
                        {
                            if (_bbs.SysopIdentified)
                            {
                                CMD_SysOp(command);
                            }
                            else
                            {
                                _bbs.WriteLine("~l1~d2Unknown command.~d0~c1");
                            }
                        }
                        break;
                    }
                }
                if ((!quitflag) && (!_bbs.doNotDisturb))
                {
                    //Show any received OLMs
                    _bbs.FlushOLMQueue();
                }
            }
        }