Skip to content
This repository has been archived by the owner on Aug 20, 2021. It is now read-only.

Commit

Permalink
Merge pull request #304 from jquast/final-release
Browse files Browse the repository at this point in the history
- update all setup.py requirements to the latest, here's hoping the
    direct downstream dependencies honor SEMVER and this continues to
    work for many more years to come!
- removed 'weather' from main menu, it is broken
- removed 'sysop' from main menu, the "x84 message net" is dead
- added 'ct', a 24-bit color example program (from blessed)
  • Loading branch information
jquast authored Jun 17, 2020
2 parents 605368b + 6c9e7fe commit da5d7cf
Show file tree
Hide file tree
Showing 22 changed files with 242 additions and 381 deletions.
83 changes: 0 additions & 83 deletions .prospector.yaml

This file was deleted.

9 changes: 9 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2.0.16
- This is the *final* release of x/84, there will be no more updates!!
- update all setup.py requirements to the latest, here's hoping the
direct downstream dependencies honor SEMVER and this continues to
work for many more years to come!
- removed bbs.modem api and xmodem dependencies, it is not used
- removed 'weather' from main menu, it is broken
- removed 'sysop' from main menu, the "x84 message net" is dead
- added 'ct', a 24-bit color example program (from blessed)
2.0.15
- bugfix: upgraded six version to 1.9.0 to meet blessed requirements
- enhancement: added 'raw' flag to x84.bbs.door.Door to send raw output to
Expand Down
7 changes: 0 additions & 7 deletions docs/api/userland.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,6 @@ Userland/scripting API
:members:
:show-inheritance:

``x84.bbs.modem``
-----------------

.. automodule:: x84.bbs.modem
:members:
:show-inheritance:

``x84.bbs.msgbase``
-------------------

Expand Down
14 changes: 1 addition & 13 deletions docs/developers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The x/84 telnet system is written in the Python_ programming language. With
prior programming experience you should be able to pick up the language quickly
by looking at the provided sample mods in the ``x84/default`` folder. If you
are completely new to Python_, it's recommended to read more about the
language, like provided by the free `Dive Into Python`_ book by Mark Pilgrim.
language, maybe browse the free `Dive Into Python`_ book by Mark Pilgrim.

Requirements
============
Expand Down Expand Up @@ -111,18 +111,6 @@ and ``/etc/x84/logging.ini``, or ``~/.x84/default.ini`` and
``~/.x84/logging.ini``.


Contributing using git
======================

If you intend to contribute patches or new mods to the x/84 telnet system, you
should `fork the repository <https://help.github.com/articles/fork-a-repo>`_
and clone over ssh.

Features should be developed into a branch, pushed to github, and when satisfied
with your changes and you wish to have them included in the base distribution,
you should
`create a pull request <https://help.github.com/articles/creating-a-pull-request>`_.

.. _git: http://git-scm.org/
.. _virtualenvwrapper: https://pypi.python.org/pypi/virtualenvwrapper
.. _`virtualenv tips and tricks`: http://virtualenvwrapper.readthedocs.org/en/latest/tips.html#automatically-run-workon-when-entering-a-directory
Expand Down
20 changes: 0 additions & 20 deletions docs/future_direction.rst

This file was deleted.

1 change: 0 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ Contents:
developers
default_api
api/*
future_direction


=======
Expand Down
75 changes: 13 additions & 62 deletions docs/intro.rst
Original file line number Diff line number Diff line change
@@ -1,25 +1,14 @@
.. image:: https://landscape.io/github/jquast/x84/master/landscape.svg
:target: https://landscape.io/github/jquast/x84/master
:alt: Code Health

.. image:: https://img.shields.io/pypi/v/x84.svg
:alt: Latest Version
:target: https://pypi.python.org/pypi/x84

.. image:: https://pypip.in/license/x84/badge.svg
:alt: License
:target: http://opensource.org/licenses/MIT

.. image:: https://img.shields.io/pypi/dm/x84.svg
:alt: Downloads

Introduction
============

**An experimental python Telnet and SSH server framework**
**An experimental python 2 Telnet (and SSH) BBS**

**this project is abandoned**, so please don't get too excited! Maybe you
would be more interested in ENiGMA½_

The primary purpose of x/84 is to provide a server framework for building
environments that emulate the feeling of an era that predates the world wide web.

It may be used for developing a classic bulletin board system (BBS) -- one is
provided as the 'default' scripting layer. It may also be used to develop a MUD,
a text-based game, or a game-hosting server such as done by dgamelaunch.
Expand All @@ -28,49 +17,14 @@ You may access the "default board" provided by x/84 at telnet host 1984.ws::

telnet 1984.ws

# or
ssh anonymous@1984.ws

# or
rlogin 1984.ws


Technologies
------------

x/84 supplies a scripting_ engine for developing character-at a time telnet
or ssh server, such as **MUD** or **BBS** systems. Technologies used in x/84
are derived from miniboa_ (Apache 2.0 Licensed) for telnet, blessed_
(MIT Licensed) for terminal capabilities, sqlitedict_ (Public Domain) for
persistent data, paramiko_ for ssh and sftp services, and web.py_ for http
service.

Asynchronous inter-process communication between sessions is provided through
an event queuing framework, for scripting of 'shared' experiences. Several
examples of these are provided, such as *chat.py*. The default board
provides several demonstrating activities.

All terminal types supported by curses (the termlib and terminfo) databases are
allowed, with a "pythonic" terminal framework supplied through blessed_.

Portability is as equal to python, and has been tested on Raspberry Pi, Android,
Mac, OpenBSD, Solaris, etc.

**ANSI Art**, such as found on ACiD_ *dark domains* DVD, is translated for
reasonably accurate reproductions for both UTF-8 and IBM CP437 terminals. This
allows classic DOS art to be used on modern terminals such as Terminal.app, or
classic emulating terminals such as syncterm_. Artwork with Sauce_ records are
also supported.

See clients_ for a list of compatible clients.

See clients_ for a list of compatible clients, though any terminal should be just fine.

Quickstart
----------

Note that only Linux, BSD, or OSX is supported, due to the blessed_ dependency on curses.
Note that only Linux, BSD, or OSX is supported. Windows might even work, but hasn't been tested.

1. Install python_ 2.7 and pip_. More than likely this is possible through your
1. Install python_ **2.7** and pip_. More than likely this is possible through your
preferred distribution packaging system.

3. Install x/84::
Expand All @@ -88,7 +42,7 @@ Note that only Linux, BSD, or OSX is supported, due to the blessed_ dependency o
If you receive an error about ``setuptools_ext`` not being found, you
may need to upgrade your installed version of setuptools and try again::

pip install -U setuptools
pip install -U setuptools pip


4. Launch the *x84.engine* python module::
Expand Down Expand Up @@ -117,13 +71,9 @@ section for preparing a developer's environment if you wish to contribute
upstream. Of note, the *Terminal* interface is used for keyboard input
and screen output, and is very well-documented in blessed_.

This project isn't terribly serious (for example, there are no tests), though
contributions (especially fixes and documentation) are welcome. See the
project on github_ for source tree and issue tracking. If there are features,
bugs, or changes you would like to see, feel free to open an issue.

If you would like to chat with developers of x/84, we are in channel *#1984*
on *irc.efnet.org*.
This project isn't terribly serious (for example, there are no tests). See the project on github_
for source tree. Please note that this project is **abandoned**. Feel free to do whatever the heck
you want with it, though, it is Open Source and ISC licensed!

.. _miniboa: https://code.google.com/p/miniboa/
.. _sqlitedict: http://pypi.python.org/pypi/sqlitedict
Expand All @@ -141,3 +91,4 @@ on *irc.efnet.org*.
.. _github: https://github.com/jquast/x84
.. _web.py: http://webpy.org/
.. _paramiko: http://www.lag.net/paramiko/
.. _ENiGMA½: https://enigma-bbs.github.io/
55 changes: 17 additions & 38 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@


setup(name='x84',
version='2.0.15',
version='2.0.16',
description=("Framework for Telnet and SSH BBS or MUD server "
"development with example default bbs board"),
long_description=open(os.path.join(HERE, README)).read(),
Expand All @@ -40,46 +40,25 @@
],
},
install_requires=[
'blessed>=1.9.5,<2.0.0',
'requests==2.5.1',
'irc==11.0.1',
'sqlitedict==1.1.0',
'python-dateutil==2.3',
'jaraco.timing==1.1',
'jaraco.util==10.6',
'more-itertools==2.2',
'sauce==1.1',
'six==1.9.0',
'wsgiref==0.1.2',
'xmodem==0.3.2',
'feedparser==5.1.3',
'html2text==2014.12.29',
'blessed>=1.17.8,<2',
'feedparser>=5.2.1,<6',
'html2text==2019.8.11',
'irc>=16.4,<17',
'requests>=2.23.0,<3',
'sauce>=1.2,<2',
'six>=1.15.0,<2',
'sqlitedict>=1.6.0,<2',
'wcwidth>=0.2.4,<1',
'python-dateutil>=2.8.1,<3',
'backports.functools-lru-cache>=1.6.1,<2'
],
extras_require={
'with_crypto': (
# These cryptogaphy requirements may only be installed:
# - if a C compiler is available,
# - if libssl is available,
# - (sometimes, only) if libffi is available
#
# for this reason, they are **optional**, so that x/84 may be
# installed without a compiler or these external C libraries
# -- however it is **highly** recommended to always try to
# use install x84[with_crypto]. It has always been a goal for
# x/84 to be "pure python" to remain compatible with alternative
# python interpreter implementations.
'bcrypt==1.1.0',
'cffi==1.7.0',
'cryptography==1.2.3',
'ecdsa==0.11',
'enum34==1.0.4',
'paramiko==1.18.3',
'pyOpenSSL==0.14',
'pyasn1==0.1.7',
'pycparser==2.10',
'pycrypto==2.6.1',
'web.py==0.37',
'cherrypy==3.6.0',
'bcrypt>=3.1.7,<4',
'cherrypy>=17.4.2,<18',
'cryptography>=2.9.2,<3',
'paramiko>=2.7.1,<3',
'web.py>=0.51,<1',
)
},
entry_points={
Expand Down
13 changes: 0 additions & 13 deletions tox.ini

This file was deleted.

16 changes: 6 additions & 10 deletions x84/bbs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
from x84.bbs.exception import Disconnected, Goto
from x84.bbs.ini import get_ini
from x84.bbs.lightbar import Lightbar
from x84.bbs.modem import send_modem, recv_modem
from x84.bbs.msgbase import list_msgs, get_msg, list_tags, Msg, list_privmsgs
from x84.bbs.output import (echo, timeago, encode_pipe, decode_pipe,
syncterm_setfont, showart, ropen,
Expand All @@ -30,12 +29,9 @@
# the scripting API is generally defined by this __all__ attribute, but
# the real purpose of __all__ is defining what gets placed into a caller's
# namespace when using statement `from x84.bbs import *`
__all__ = ('list_users', 'get_user', 'find_user', 'User', 'Group', 'list_msgs',
'get_msg', 'list_tags', 'Msg', 'LineEditor', 'ScrollingEditor',
'echo', 'timeago', 'AnsiWindow', 'Selector', 'Disconnected', 'Goto',
'Lightbar', 'from_cp437', 'DBProxy', 'Pager', 'Door', 'DOSDoor',
'goto', 'disconnect', 'getsession', 'getterminal', 'getch', 'gosub',
'ropen', 'showart', 'Dropfile', 'encode_pipe',
'decode_pipe', 'syncterm_setfont', 'get_ini', 'send_modem',
'recv_modem', 'Script', 'list_privmsgs',
)
__all__ = ('list_users', 'get_user', 'find_user', 'User', 'Group', 'list_msgs', 'get_msg',
'list_tags', 'Msg', 'LineEditor', 'ScrollingEditor', 'echo', 'timeago', 'AnsiWindow',
'Selector', 'Disconnected', 'Goto', 'Lightbar', 'from_cp437', 'DBProxy', 'Pager', 'Door',
'DOSDoor', 'goto', 'disconnect', 'getsession', 'getterminal', 'getch', 'gosub', 'ropen',
'showart', 'Dropfile', 'encode_pipe', 'decode_pipe', 'syncterm_setfont', 'get_ini',
'Script', 'list_privmsgs')
Loading

0 comments on commit da5d7cf

Please sign in to comment.