Skip to content

Commit 72cf570

Browse files
committed
Merge to release 1.0.9
2 parents 8198434 + 68b9e26 commit 72cf570

73 files changed

Lines changed: 1734 additions & 403 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ notifications:
2222
channels:
2323
- "irc.esper.net#cloudbot"
2424
template:
25-
- "%{repository}#%{build_number} (%{branch} - %{commit}) %{author}: %{message}"
25+
- "%{repository}#%{build_number} (%{branch} - %{commit}) %{author}: %{message} - %{build_url}"
2626
on_failure: always
2727
on_success: change
28+
skip_join: true

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
## Changelog
2+
3+
## 1.0.9
4+
TBA
5+
26
### 1.0.8
37
This update is pretty big. Be warned.
48
* Improved flip command.

cloudbot/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import logging
1111
import os
1212

13-
__version__ = "1.0.8"
13+
__version__ = "1.0.9"
1414

1515
__all__ = ["util", "bot", "connection", "config", "permissions", "plugin", "event", "hook", "log_dir"]
1616

cloudbot/bot.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from sqlalchemy import create_engine
99

1010
from sqlalchemy.orm import scoped_session, sessionmaker
11+
from sqlalchemy.ext.declarative import declarative_base
1112
from sqlalchemy.schema import MetaData
1213

1314
import cloudbot
@@ -16,9 +17,15 @@
1617
from cloudbot.reloader import PluginReloader
1718
from cloudbot.plugin import PluginManager
1819
from cloudbot.event import Event, CommandEvent, RegexEvent, EventType
19-
from cloudbot.util import botvars, formatting
20+
from cloudbot.util import database, formatting
2021
from cloudbot.clients.irc import IrcClient
2122

23+
try:
24+
from cloudbot.web.main import WebInterface
25+
web_installed = True
26+
except ImportError:
27+
web_installed = False
28+
2229
logger = logging.getLogger("cloudbot")
2330

2431

@@ -89,10 +96,15 @@ def __init__(self, loop=asyncio.get_event_loop()):
8996
self.db_factory = sessionmaker(bind=self.db_engine)
9097
self.db_session = scoped_session(self.db_factory)
9198
self.db_metadata = MetaData()
99+
self.db_base = declarative_base(metadata=self.db_metadata, bind=self.db_engine)
100+
101+
# create web interface
102+
if self.config.get("web", {}).get("enabled", False) and web_installed:
103+
self.web = WebInterface(self)
92104

93105
# set botvars so plugins can access when loading
94-
botvars.metadata = self.db_metadata
95-
botvars.user_agent = self.user_agent
106+
database.metadata = self.db_metadata
107+
database.base = self.db_base
96108

97109
logger.debug("Database system initialised.")
98110

@@ -193,6 +205,10 @@ def _init_routine(self):
193205
# Connect to servers
194206
yield from asyncio.gather(*[conn.connect() for conn in self.connections.values()], loop=self.loop)
195207

208+
# Activate web interface.
209+
if self.config.get("web", {}).get("enabled", False) and web_installed:
210+
self.web.start()
211+
196212
# Run a manual garbage collection cycle, to clean up any unused objects created during initialization
197213
gc.collect()
198214

cloudbot/event.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ def reply(self, *messages, target=None):
240240
:type message: str
241241
:type target: str
242242
"""
243+
reply_ping = self.conn.config.get("reply_ping", True)
243244
if target is None:
244245
if self.chan is None:
245246
raise ValueError("Target must be specified when chan is not assigned")
@@ -248,7 +249,7 @@ def reply(self, *messages, target=None):
248249
if not messages: # if there are no messages specified, don't do anything
249250
return
250251

251-
if target == self.nick:
252+
if target == self.nick or not reply_ping:
252253
self.conn.message(target, *messages)
253254
else:
254255
self.conn.message(target, "({}) {}".format(self.nick, messages[0]), *messages[1:])

cloudbot/plugin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import sqlalchemy
1010

1111
from cloudbot.event import Event
12-
from cloudbot.util import botvars
12+
from cloudbot.util import database
1313

1414
logger = logging.getLogger("cloudbot")
1515

@@ -52,7 +52,7 @@ def find_tables(code):
5252
"""
5353
tables = []
5454
for name, obj in code.__dict__.items():
55-
if isinstance(obj, sqlalchemy.Table) and obj.metadata == botvars.metadata:
55+
if isinstance(obj, sqlalchemy.Table) and obj.metadata == database.metadata:
5656
# if it's a Table, and it's using our metadata, append it to the list
5757
tables.append(obj)
5858

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""
2-
botvars - contains variables set by cloudbot to be easily access
2+
database - contains variables set by cloudbot to be easily access
33
"""
44

55
# this is assigned in the CloudBot so that its recreated when the bot restarts
66
metadata = None
7-
user_agent = None
7+
base = None

cloudbot/util/dictionaries.py

Lines changed: 0 additions & 43 deletions
This file was deleted.

cloudbot/util/test/test_botvars.py

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from cloudbot.util.database import metadata, base
2+
3+
4+
def test_database():
5+
assert metadata is None
6+
assert base is None

0 commit comments

Comments
 (0)