Commit 3c66dfbf authored by Romain Bignon's avatar Romain Bignon

rename ass2m to assnet

parent 9d698c65
The *Authenticated Social Storage Made for Mothers* (ass2m) project is a web application useful for sharing files (with support for photos galleries, videos, etc.) or organizing events with your friends, removing the obligation of using centralized social networks.
The *Asocial Storage Network* (assnet) project is a web application useful for sharing files (with support for photos galleries, videos, etc.) or organizing events with your friends, removing the obligation of using centralized social networks.
You self-host your data and manage permissions to protect your privacy and control exactly who can access what information.
......@@ -7,7 +7,7 @@ Your contacts go to a web interface to see and interact with your data, and you
Overview
--------
The command-line interface is a first-class citizen in ass2m. It is the main way of setting up an ass2m instance.
The command-line interface is a first-class citizen in assnet. It is the main way of setting up an assnet instance.
The software is able to send emails, and a friendly web interface is provided to end-users. The goal is to enable advanced sharing features while staying as close as possible to the Internet standards (web standards, email, etc.).
......@@ -23,7 +23,7 @@ Features
* Support several plugins to provide extra features.
* Thorough automated testing, making it PHB-compliant.
ass2m is written in Python and is distributed under the AGPLv3+ license.
assnet is written in Python and is distributed under the AGPLv3+ license.
Installation
------------
......@@ -45,30 +45,30 @@ Those dependencies will be either checked or installed automatically unless you
With a package (recommended)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Gentoo has an ass2m ebuild in the laurentb overlay. To install::
* Gentoo has an assnet ebuild in the laurentb overlay. To install::
# layman -a laurentb
# emerge --autounmask -av ass2m
# emerge --autounmask -av assnet
From the sources
~~~~~~~~~~~~~~~~
Get the source code from the git repository and run the installer::
$ git clone git://git.symlink.me/pub/laurentb/ass2m.git
$ cd ass2m
$ git clone git://git.symlink.me/pub/laurentb/assnet.git
$ cd assnet
$ sudo python setup.py install
No installation (development)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You just have to set the PYTHONPATH variable.
For instance, to run the ass2m CLI::
For instance, to run the asn CLI::
$ git clone git://git.symlink.me/pub/laurentb/ass2m.git
$ cd ass2m
$ PYTHONPATH=. ./bin/ass2m
$ git clone git://git.symlink.me/pub/laurentb/assnet.git
$ cd assnet
$ PYTHONPATH=. ./bin/asn
Beware that if you also have installed ass2m globally, the installed data files (assets, templates) could be used (the local ones of course have an higher priority).
Beware that if you also have installed assnet globally, the installed data files (assets, templates) could be used (the local ones of course have an higher priority).
Getting started
---------------
......@@ -76,12 +76,12 @@ Getting started
First, we have to create the *working directory* where all files you want to share will be put. ::
$ cd mysharedfiles
$ ass2m init
Ass2m working directory created.
$ asn init
assnet working directory created.
You can test ass2m *right now* by starting the integrated server. However, for a more serious usage, it is recommended to configure it to work with a full-blown web server (see the SETUP file)::
You can test assnet *right now* by starting the integrated server. However, for a more serious usage, it is recommended to configure it to work with a full-blown web server (see the SETUP file)::
$ ass2m-serve .
$ assnet-serve .
serving on 0.0.0.0:8042 view at http://127.0.0.1:8042
You can now play around with the web interface. Add some files in your working directory, and they will appear. For instance, let's add one file::
......@@ -91,43 +91,43 @@ You can now play around with the web interface. Add some files in your working d
Refresh the web page. By default, since we added an image, it will be shown as a thumbnail.
However, you might not want this picture to be seen by everyone::
$ ass2m chmod all -irl my_gf_naked.jpg
$ asn chmod all -irl my_gf_naked.jpg
Check all set permissions::
$ ass2m tree
$ asn tree
-/ all(irl-)
|-.ass2m/ all(----)
|-.assnet/ all(----)
-my_gf_naked.jpg all(----)
``all`` is a special name to refer to everyone (anonymous users being part of it of course). ``i`` is for appearing In a list, ``r`` is for Reading, ``w`` is for Writing, and ``l`` is for Listing a directory. All modes are inherited from the parents if they are not specified at a higher level.
Refresh the web page. Now, no one can read and or even know that file exists. But let's do something fun! ::
$ ass2m chmod all +i my_gf_naked.jpg
$ ass2m tree
$ asn chmod all +i my_gf_naked.jpg
$ asn tree
-/ all(irl-)
|-.ass2m/ all(----)
|-.assnet/ all(----)
-my_gf_naked.jpg all(i---)
Refresh the web page. The file will appear, but if you try to view it, you will be denied.
The next step is to allow only some users to view that file::
$ ass2m contacts add myfriend
$ ass2m chmod u.myfriend +ir my_gf_naked.jpg
$ ass2m tree
$ asn contacts add myfriend
$ asn chmod u.myfriend +ir my_gf_naked.jpg
$ asn tree
-/ all(irl-)
|-.ass2m/ all(----)
|-.assnet/ all(----)
-my_gf_naked.jpg u.myfriend(ir--) all(i---)
``u`` is a prefix to specify it concerns an user.
Now, connect as this user::
$ ass2m contacts genkey myfriend
$ asn contacts genkey myfriend
Key of user myfriend set to 455b00b1e5.
$ ass2m geturl -u myfriend .
$ asn geturl -u myfriend .
http://127.0.0.1:8042/?authkey=455b00b1e5
Open the URL. You can now access the file!
......
This file sums up the various way of setting up ass2m with a full-blown HTTP server.
This file sums up the various way of setting up assnet with a full-blown HTTP server.
Lighttpd, CGI
-------------
......@@ -8,17 +8,17 @@ This mode is not the best for performance, but it won't take any memory when not
You will need to load the ``alias``, ``setenv`` and ``cgi`` modules for this setup to work.
If they are not loaded, the following directives will be ignored.
Let's say you want http://your.host/data/ to be served by Ass2m. Add this to your ``lighttpd.conf``::
Let's say you want http://your.host/data/ to be served by assnet. Add this to your ``lighttpd.conf``::
$HTTP["host"] == "your.host" {
$HTTP["url"] =~ "^/data" {
# make everything go through ass2m
alias.url = ( "" => "/usr/share/ass2m/scripts/ass2m.cgi" )
cgi.assign = ( "ass2m.cgi" => "" )
# configure ass2m
# make everything go through assnet
alias.url = ( "" => "/usr/share/assnet/scripts/assnet.cgi" )
cgi.assign = ( "assnet.cgi" => "" )
# configure assnet
setenv.add-environment = (
"FORCE_SCRIPT_NAME" => "/data",
"ASS2M_ROOT" => "/path/to/the/work/dir",
"ASSNET_ROOT" => "/path/to/the/work/dir",
)
}
}
......@@ -26,30 +26,30 @@ Let's say you want http://your.host/data/ to be served by Ass2m. Add this to you
Please adjust the paths. You can make use of the ``setenv`` directive to set a different ``PYTHONPATH``.
The should be no ``/`` at the end of the value of ``FORCE_SCRIPT_NAME``.
If you just want a whole host to be served by Ass2m, you can use a simpler configuration::
If you just want a whole host to be served by assnet, you can use a simpler configuration::
$HTTP["host"] == "your.host" {
# make everything go through ass2m
alias.url = ( "" => "/usr/share/ass2m/scripts/ass2m.cgi" )
cgi.assign = ( "ass2m.cgi" => "" )
# configure ass2m
# make everything go through assnet
alias.url = ( "" => "/usr/share/assnet/scripts/assnet.cgi" )
cgi.assign = ( "assnet.cgi" => "" )
# configure assnet
setenv.add-environment = (
"ASS2M_ROOT" => "/path/to/the/work/dir",
"ASSNET_ROOT" => "/path/to/the/work/dir",
)
}
Lighttpd, FastCGI
-----------------
This is the fastest mode as instances are not started for each request. It also allows Ass2m to delegate the file transfer as soon as possible to the web server, which is much more efficient at that task.
This is the fastest mode as instances are not started for each request. It also allows assnet to delegate the file transfer as soon as possible to the web server, which is much more efficient at that task.
In this example, the FastCGI server is started by lighttpd::
$HTTP["host"] == "your.host" {
fastcgi.server = (
"/data" => ((
"bin-path" => "/usr/share/ass2m/scripts/ass2m.fcgi",
"socket" => "/tmp/ass2m.sock",
"bin-path" => "/usr/share/assnet/scripts/assnet.fcgi",
"socket" => "/tmp/assnet.sock",
"check-local" => "disable",
"allow-x-send-file" => "enable",
))
......@@ -57,26 +57,26 @@ In this example, the FastCGI server is started by lighttpd::
$HTTP["url"] =~ "^/data" {
setenv.add-environment = (
"ASS2M_ROOT" => "/path/to/the/work/dir",
"ASSNET_ROOT" => "/path/to/the/work/dir",
"SERVER_SENDFILE" => "lighttpd",
)
}
}
We are again serving http://your.host/data/ through Ass2m. To serve the whole host::
We are again serving http://your.host/data/ through assnet. To serve the whole host::
$HTTP["host"] == "your.host" {
fastcgi.server = (
"" => ((
"bin-path" => "/usr/share/ass2m/scripts/ass2m.fcgi",
"socket" => "/tmp/ass2m.sock",
"bin-path" => "/usr/share/assnet/scripts/assnet.fcgi",
"socket" => "/tmp/assnet.sock",
"check-local" => "disable",
"allow-x-send-file" => "enable",
))
)
setenv.add-environment = (
"ASS2M_ROOT" => "/path/to/the/work/dir",
"ASSNET_ROOT" => "/path/to/the/work/dir",
"FORCE_SCRIPT_NAME" => "",
"SERVER_SENDFILE" => "lighttpd",
}
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
import os
......@@ -53,7 +53,7 @@ class Butt(object):
self.load_plugin(existing_plugin_name)
def load_plugin(self, plugin_name):
package_name = 'ass2m.plugins.%s' % plugin_name
package_name = 'assnet.plugins.%s' % plugin_name
package = __import__(package_name, fromlist=[str(package_name)])
klass = None
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
import argparse
......@@ -31,7 +31,7 @@ __all__ = ['CLI']
class CLI(object):
def __init__(self, working_dir):
self.working_dir = working_dir
self.parser = argparse.ArgumentParser(prog='ass2m')
self.parser = argparse.ArgumentParser(prog='asn')
self.butt = Butt(parser=self.parser)
self.parser.add_argument('-V', '--version', action='version',
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
import sys
......@@ -128,7 +128,7 @@ class Command(ConsolePart):
def run(self, args):
if self.WORKDIR and not self.storage:
print >>sys.stderr, 'Error: Not a ass2m working directory.'
print >>sys.stderr, 'Error: Not a assnet working directory.'
print >>sys.stderr, 'Please use "%s init"' % sys.argv[0]
return 1
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
import re
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
from urlparse import urlsplit, urlunsplit
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
from email.mime.text import MIMEText
import smtplib
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
from collections import defaultdict
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
from .cmd import CommandParent
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
import json
......@@ -23,11 +23,11 @@ from dateutil import tz
import PyRSS2Gen
from mako.filters import html_escape
from ass2m.plugin import Plugin
from assnet.plugin import Plugin
from ass2m.routes import View
from ass2m.server import ViewAction
from ass2m.template import build_url, build_root_url
from assnet.routes import View
from assnet.server import ViewAction
from assnet.template import build_url, build_root_url
__all__ = ['ApiPlugin']
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
from contextlib import closing
......@@ -24,8 +24,8 @@ import re
from gzip import GzipFile
from mimetypes import guess_type
from ass2m.plugin import Plugin
from ass2m.server import Action, FileApp
from assnet.plugin import Plugin
from assnet.server import Action, FileApp
from paste.httpheaders import CACHE_CONTROL, CONTENT_DISPOSITION
from webob.exc import HTTPNotFound, HTTPPreconditionFailed
......
......@@ -2,28 +2,28 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
from mako.filters import html_escape
from ass2m.plugin import Plugin
from assnet.plugin import Plugin
from ass2m.routes import View
from ass2m.server import ViewAction
from assnet.routes import View
from assnet.server import ViewAction
__all__ = ['BlogPlugin']
......
......@@ -2,24 +2,24 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
from ass2m.plugin import Plugin
from ass2m.cmd import Command
from assnet.plugin import Plugin
from assnet.cmd import Command
__all__ = ['CleanupPlugin', 'ICleaner']
......@@ -57,7 +57,7 @@ class ICleaner(object):
class CleanupCmd(Command):
DESCRIPTION = 'Check and fix the ass2m storage data'
DESCRIPTION = 'Check and fix the assnet storage data'
@staticmethod
def configure_parser(parser):
......
......@@ -2,27 +2,27 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
import os
import sys
import subprocess
from ass2m.plugin import Plugin
from ass2m.cmd import Command, CommandParent
from assnet.plugin import Plugin
from assnet.cmd import Command, CommandParent
__all__ = ['ConfigPlugin']
......
......@@ -2,33 +2,33 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
import sys
import re
from ass2m.plugin import Plugin
from ass2m.cmd import Command, ConsolePart
from ass2m.storage import Storage
from ass2m.users import User, Group
from ass2m.filters import quote_url
from assnet.plugin import Plugin
from assnet.cmd import Command, ConsolePart
from assnet.storage import Storage
from assnet.users import User, Group
from assnet.filters import quote_url
from .cleanup import ICleaner
from ass2m.server import Action
from assnet.server import Action
from webob.exc import HTTPFound
......
......@@ -2,20 +2,20 @@
# Copyright (C) 2011 Romain Bignon, Laurent Bachelier
#
# This file is part of ass2m.
# This file is part of assnet.
#
# ass2m is free software: you can redistribute it and/or modify
# assnet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ass2m is distributed in the hope that it will be useful,
# assnet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with ass2m. If not, see <http://www.gnu.org/licenses/>.
# along with assnet. If not, see <http://www.gnu.org/licenses/>.
import sys
......@@ -23,12 +23,12 @@ import os
from paste.httpheaders import CONTENT_DISPOSITION
from ass2m.plugin import Plugin
from ass2m.cmd import Command
from ass2m.storage import Storage
from ass2m.files import File
from ass2m.routes import View
from ass2m.server import ViewAction, FileApp
from assnet.plugin import Plugin
from assnet.cmd import Command
from assnet.storage import Storage
from assnet.files import File
from assnet.routes import View
from assnet.server import ViewAction, FileApp
from .cleanup import ICleaner
from .gallery import MediaListAction
......@@ -46,7 +46,7 @@ class InitCmd(Command):
return 1
self