Thanks to visit codestin.com
Credit goes to github.com

Skip to content

shlomif/iniquity

 
 

Repository files navigation

Iniquity

This is the re-imagining of the iconic Iniquity Bulletin Board Software.

-$a. ------------------ .a$ ---------------------------- %$!, ----------------%
 `$¸   .%$$^¸$$aa.     .¸$`        .        .a$a$$.      `¸$%  $a$.        .
-.aaa$ $$$$'- $$$$$.- $aaa. -.a%$^"$$aa -- .$$$$$'- $$a. $aaa. `$,$ ----------%
;$$$$',a$a$  d$%$$$$$,'$$$$;$$$$$  $$$$$., $$%$$"  d$a$$ '$$$$; $$$   .a%$  $$a
:$$$$;$$$$%; Z$$$$$$$$;$$$$:$$$$$. $$$$^$,;$$&$$   Z$$$$,;$$$$.a$$$a..$$$   $$$
.$$$$ `$$$$.  $$$%$$$' $$$$.`$$$$  $$%$$$$ `$$$$.   $%$$$ $$$$""$$$" $$$$:  a$$
 `$$$a.$$%$   $$$$$$';a$$$`  `¸$$aa$$$$&$': `$$$$a. $$$$'a$$$`.$$'$  $$$$;  $$$
%-----.------ $$$$'--------------- $$%$$' -- `¸$$$$$%$¸' ---- $$¸$a. `"$&$$//$%$
dz      .   .:'¸'     .        .   $$$$'     .        .       `¸$$$$y.     `$$&
%--------- a`-----------.--------- $$¸' -----.------------.---------------- $$$
   .      !a    . .    .      .   .:'   .  .                  .        .:.a$$$¸
.      .  '$a,          .        a` .   'a          .   .             s` .  . .
      .    ¸$Aa         .       !a       a!      .    .         ..   %s      .s
   .         ¸¸'     . .        '$$Aa.aA$$'        . .               `!$%a.a%//$
==============================================================================
   t h e    i n i q u i t y    b u l l e t i n   b o a r d   s y s t e m
==============================================================================

Release Quality Gate Status lerna Discord

Introduction

Some guidng thoughts surrounding the idea of a new Iniquity BBS

  • A BBS software framework that is geared towards developers and modders.
  • Make it easy for sysops to develop and deploy BBS applications.
  • Easily network files, messages and other forms of communication between other BBS applications.
  • What you see in xterm, NetRunner, SyncTerm, EtherTerm or qodem is what you see in a web browser.
    • Though the ability to do interesting things specific to terminal/web should exist.

Getting started

Your development environment should contain something like this, or similar

  • macOS / Windows / Linux required
    • These modern operating systems are currently supported.
  • Docker Desktop for macOS / Windows or Docker Machine required
    • The Iniquity BBS runtime is executed inside of a Docker container for portability.
  • Node.js & NPM required
    • The Node community tools are used for TypeScript transpiling and Iniquity package management.
  • Visual Studio Code recommended
    • This repository is specifically tuned to take full advantage of this IDE.
  • Moebius recommended
    • The ideal choice for working with ANSI/ASCII/PETSCII/AMIGA artwork.

First, clone this repository somewhere on your system

git clone https://github.com/iniquitybbs/iniquity.git

Inside of the iniquity directory, install the project dependencies

npm install

Start iniquity

npm start

Example

const iq = new Iniquity({ basepath: "/iniquity/core/assets/" })

const welcomeArt = iq.artwork({ filename: Assets.sm_iniq2 })
welcomeArt.render({ clearScreenBefore: true, speed: 100 })

iq.print({
    text: `You just connected to an iniquity bbs. The artwork you are seeing above is called ${welcomeArt.filename} It's still pretty new. Likely has bugs. Real talk, it's not even finished. But maybe you'll still think it's cool.`
        .newlines()
        .color("background red")
        .center()
}).pause({ colorReset: true, newlines: 2, center: true })

iq.artwork({ filename: Assets.we_iniq3 }).render({ clearScreenBefore: false })

iq.say("You've connected to a prototype of the new Iniquity BBS Development Platform.".newlines(2).color("bright red").center()).pause()

iq.artwork({ filename: Assets.d_iniq1 }).render({ speed: 100 })
const login = iq.ask("What is your login: ".newlines(1))
switch (login) {
    case "new":
    case "signup":
        iq.artwork({ filename: Assets.newuser1 }).render({ clearScreenBefore: true })

        let newUser = iq.user({
            name: iq.ask("What would you like your handle to be?".newlines(2).color("white")),
            password: iq.ask("And your password?".newlines(2).color("white"))
        })

        iq.say(`Welcome ${newUser.name}. And goodbye!`.newlines().center())
        iq.disconnect()
        break
    default:
        if (iq.user({ name: login, password: iq.ask("And your password?".newlines(2).color("white")) })) {
            alert("somethingsync")
        }

        iq.pause()

        iq.artwork({ filename: Assets.d_iniq1 }).render({ clearScreenBefore: true })
        break
}

Want to learn more? Read the docs!

Discord

Join us on Discord.

Issues

Share your ideas, feedback and bug reports.

Documentation

Read the Iniquity documentation.

About

A re-imagining of the iconic BBS software.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 69.2%
  • JavaScript 25.8%
  • Dockerfile 4.1%
  • AGS Script 0.9%