mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-08-27 10:19:22 +00:00
Compare commits
41 Commits
Author | SHA1 | Date | |
---|---|---|---|
dbbe6c0600 | |||
3caef5fc81 | |||
7cd58708cc | |||
0814af3bf4 | |||
72ba5a74f5 | |||
cbc301141e | |||
f466516289 | |||
4eef236b1c | |||
![]() |
ce00083aa2 | ||
![]() |
f92e05ce72 | ||
c02a11f269 | |||
![]() |
c79e659b74 | ||
da8009aea0 | |||
2778d2e85d | |||
ce9a50903c | |||
9a7d39c125 | |||
89759e7d49 | |||
7ca9d42f5f | |||
![]() |
6a6bec880c | ||
7b22c7d0f8 | |||
058866831b | |||
229f698e72 | |||
32067d3171 | |||
a8f7477a1f | |||
9b6461e34e | |||
eed3f81cb8 | |||
e605c750b1 | |||
f49be6cfed | |||
696faed007 | |||
![]() |
46b46c4d6d | ||
![]() |
9cdccca5ff | ||
![]() |
564bee3850 | ||
![]() |
79e723f740 | ||
![]() |
08a2eca98d | ||
![]() |
c830d4b5b4 | ||
112391afeb | |||
![]() |
39e0431b97 | ||
071d75926b | |||
56b64e5c6d | |||
b8cfd60c9e | |||
691a9ae17d |
@@ -35,8 +35,8 @@ Although most dependencies can be found in the windows-dependencies directory, w
|
|||||||
* [Python,](http://python.org) version 2.7.11
|
* [Python,](http://python.org) version 2.7.11
|
||||||
If you want to build both x86 and x64 binaries, you can install python x86 to C:\python27 and python x64 to C:\python27x64, for example.
|
If you want to build both x86 and x64 binaries, you can install python x86 to C:\python27 and python x64 to C:\python27x64, for example.
|
||||||
* [wxPython](http://www.wxpython.org) for Python 2.7, version 3.0.2.0
|
* [wxPython](http://www.wxpython.org) for Python 2.7, version 3.0.2.0
|
||||||
* [Python windows extensions (pywin32)](http://www.sourceforge.net/projects/pywin32/) for python 2.7, build 219
|
* [Python windows extensions (pywin32)](http://www.sourceforge.net/projects/pywin32/) for python 2.7, build 220
|
||||||
* [Pycurl](http://pycurl.sourceforge.net) 7.19.5.3 for Python 2.7: [downloads](https://pypi.python.org/pypi/pycurl/7.19.5.3)
|
* [Pycurl](http://pycurl.sourceforge.net) 7.21.5 for Python 2.7: [downloads](https://pypi.python.org/pypi/pycurl/7.21.5)
|
||||||
* [PyEnchant,](http://pythonhosted.org/pyenchant/) version 1.6.6.
|
* [PyEnchant,](http://pythonhosted.org/pyenchant/) version 1.6.6.
|
||||||
x64 version has been built by TWBlue developers, so you only will find it in windows-dependencies folder
|
x64 version has been built by TWBlue developers, so you only will find it in windows-dependencies folder
|
||||||
|
|
||||||
|
@@ -34,4 +34,6 @@ Holly Scott-Gardner
|
|||||||
Anibal Hernández
|
Anibal Hernández
|
||||||
Sussan Leiva
|
Sussan Leiva
|
||||||
Brian Hartgen
|
Brian Hartgen
|
||||||
PEDRO REINA COLOBON
|
PEDRO REINA COLOBON
|
||||||
|
Moora-Moora Arrilla
|
||||||
|
Blake Oliver
|
@@ -1,7 +1,7 @@
|
|||||||
[Launch]
|
[Launch]
|
||||||
ProgramExecutable=TWBlue\TWBlue.exe
|
ProgramExecutable=TWBlue\TWBlue.exe
|
||||||
ProgramExecutable64=TWBlue64\TWBlue.exe
|
ProgramExecutable64=TWBlue64\TWBlue.exe
|
||||||
CommandLineArguments=-p -d "%PAL:DataDir%"
|
CommandLineArguments=-d "%PAL:DataDir%"
|
||||||
SinglePortableAppInstance=true
|
SinglePortableAppInstance=true
|
||||||
MinOS=XP
|
MinOS=XP
|
||||||
SingleAppInstance=false
|
SingleAppInstance=false
|
||||||
|
@@ -12,10 +12,10 @@ SetCompress auto
|
|||||||
SetCompressor /solid lzma
|
SetCompressor /solid lzma
|
||||||
SetDatablockOptimize on
|
SetDatablockOptimize on
|
||||||
VIAddVersionKey ProductName "TWBlue"
|
VIAddVersionKey ProductName "TWBlue"
|
||||||
VIAddVersionKey LegalCopyright "Copyright 2015 Manuel Cortéz."
|
VIAddVersionKey LegalCopyright "Copyright 2016 Manuel Cortéz."
|
||||||
VIAddVersionKey ProductVersion "0.80"
|
VIAddVersionKey ProductVersion "0.81"
|
||||||
VIAddVersionKey FileVersion "0.80"
|
VIAddVersionKey FileVersion "0.81"
|
||||||
VIProductVersion "0.80.0.0"
|
VIProductVersion "0.81.0.0"
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
||||||
!insertmacro MUI_PAGE_LICENSE "license.txt"
|
!insertmacro MUI_PAGE_LICENSE "license.txt"
|
||||||
@@ -26,7 +26,6 @@ var StartMenuFolder
|
|||||||
!define MUI_FINISHPAGE_LINK "Visit TWBlue website"
|
!define MUI_FINISHPAGE_LINK "Visit TWBlue website"
|
||||||
!define MUI_FINISHPAGE_LINK_LOCATION "http://twblue.es"
|
!define MUI_FINISHPAGE_LINK_LOCATION "http://twblue.es"
|
||||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\TWBlue.exe"
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\TWBlue.exe"
|
||||||
!define MUI_FINISHPAGE_RUN_PARAMETERS "-i"
|
|
||||||
!insertmacro MUI_PAGE_FINISH
|
!insertmacro MUI_PAGE_FINISH
|
||||||
!insertmacro MUI_UNPAGE_CONFIRM
|
!insertmacro MUI_UNPAGE_CONFIRM
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
@@ -58,10 +57,10 @@ File /r TWBlue64\*
|
|||||||
${Else}
|
${Else}
|
||||||
File /r TWBlue\*
|
File /r TWBlue\*
|
||||||
${EndIf}
|
${EndIf}
|
||||||
CreateShortCut "$DESKTOP\TWBlue.lnk" "$INSTDIR\TWBlue.exe" "-i"
|
CreateShortCut "$DESKTOP\TWBlue.lnk" "$INSTDIR\TWBlue.exe"
|
||||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN startmenu
|
!insertmacro MUI_STARTMENU_WRITE_BEGIN startmenu
|
||||||
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
|
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\TWBlue.lnk" "$INSTDIR\TWBlue.exe" "-i"
|
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\TWBlue.lnk" "$INSTDIR\TWBlue.exe"
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\TWBlue on the web.lnk" "http://twblue.es"
|
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\TWBlue on the web.lnk" "http://twblue.es"
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
||||||
!insertmacro MUI_STARTMENU_WRITE_END
|
!insertmacro MUI_STARTMENU_WRITE_END
|
||||||
|
@@ -1,12 +1,14 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
name = 'TWBlue'
|
name = 'TWBlue'
|
||||||
snapshot = True
|
snapshot = False
|
||||||
if snapshot == False:
|
if snapshot == False:
|
||||||
version = "0.80"
|
version = "0.81"
|
||||||
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
||||||
|
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
||||||
else:
|
else:
|
||||||
version = "10.98"
|
version = "10.99"
|
||||||
update_url = 'http://twblue.es/updates/snapshots_ngen.json'
|
update_url = 'http://twblue.es/updates/snapshots_ngen.json'
|
||||||
|
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/snapshots.json'
|
||||||
author = u"Manuel Cortéz"
|
author = u"Manuel Cortéz"
|
||||||
authorEmail = "manuel@manuelcortez.net"
|
authorEmail = "manuel@manuelcortez.net"
|
||||||
copyright = u"Copyright (C) 2015, Technow S.L. \nCopyright (C) 2013-2015, Manuel cortéz."
|
copyright = u"Copyright (C) 2015, Technow S.L. \nCopyright (C) 2013-2015, Manuel cortéz."
|
||||||
|
@@ -6,13 +6,7 @@ import application
|
|||||||
log = logging.getLogger("commandlineLauncher")
|
log = logging.getLogger("commandlineLauncher")
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description=application.name+" command line launcher")
|
parser = argparse.ArgumentParser(description=application.name+" command line launcher")
|
||||||
group = parser.add_mutually_exclusive_group()
|
|
||||||
group.add_argument("-p", "--portable", help="Use " + application.name + " as a portable application.", action="store_true", default=True)
|
|
||||||
group.add_argument("-i", "--installed", help="Use " + application.name + " as an installed application. Config files will be saved in the user data directory", action="store_true")
|
|
||||||
parser.add_argument("-d", "--data-directory", action="store", dest="directory", help="Specifies the directory where " + application.name + " saves userdata.")
|
parser.add_argument("-d", "--data-directory", action="store", dest="directory", help="Specifies the directory where " + application.name + " saves userdata.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
log.debug("Starting " + application.name + " with the following arguments: installed = %s, portable = %s and directory = %s" % (args.installed, args.portable, args.directory))
|
log.debug("Starting " + application.name + " with the following arguments: directory = %s" % (args.directory))
|
||||||
if args.installed == True: paths.mode = "installed"
|
if args.directory != None: paths.directory = args.directory
|
||||||
elif args.portable == True:
|
|
||||||
paths.mode = "portable"
|
|
||||||
if args.directory != None: paths.directory = args.directory
|
|
||||||
|
@@ -3,6 +3,9 @@ from configobj import ConfigObj, ParseError
|
|||||||
from validate import Validator, ValidateError
|
from validate import Validator, ValidateError
|
||||||
import os
|
import os
|
||||||
import string
|
import string
|
||||||
|
from logging import getLogger
|
||||||
|
log = getLogger("config_utils")
|
||||||
|
|
||||||
class ConfigLoadError(Exception): pass
|
class ConfigLoadError(Exception): pass
|
||||||
|
|
||||||
def load_config(config_path, configspec_path=None, *args, **kwargs):
|
def load_config(config_path, configspec_path=None, *args, **kwargs):
|
||||||
@@ -14,10 +17,12 @@ def load_config(config_path, configspec_path=None, *args, **kwargs):
|
|||||||
except ParseError:
|
except ParseError:
|
||||||
raise ConfigLoadError("Unable to load %r" % config_path)
|
raise ConfigLoadError("Unable to load %r" % config_path)
|
||||||
validator = Validator()
|
validator = Validator()
|
||||||
validated = config.validate(validator, copy=True)
|
validated = config.validate(validator, preserve_errors=False, copy=True)
|
||||||
if validated == True:
|
if validated == True:
|
||||||
config.write()
|
config.write()
|
||||||
return config
|
return config
|
||||||
|
else:
|
||||||
|
log.exception("Error in config file: {0}".format(validated,))
|
||||||
|
|
||||||
def is_blank(arg):
|
def is_blank(arg):
|
||||||
"Check if a line is blank."
|
"Check if a line is blank."
|
||||||
@@ -25,6 +30,7 @@ def is_blank(arg):
|
|||||||
if c not in string.whitespace:
|
if c not in string.whitespace:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def get_keys(path):
|
def get_keys(path):
|
||||||
"Gets the keys of a configobj config file."
|
"Gets the keys of a configobj config file."
|
||||||
res=[]
|
res=[]
|
||||||
|
@@ -742,7 +742,7 @@ class peopleBufferController(baseBufferController):
|
|||||||
dlg = commonMessageDialogs.remove_buffer()
|
dlg = commonMessageDialogs.remove_buffer()
|
||||||
if dlg == widgetUtils.YES:
|
if dlg == widgetUtils.YES:
|
||||||
if self.name[:-8] in self.session.settings["other_buffers"]["friends_timelines"]:
|
if self.name[:-8] in self.session.settings["other_buffers"]["friends_timelines"]:
|
||||||
self.session.settings["other_buffers"]["friends_timelines"].remove(self.name[:-9])
|
self.session.settings["other_buffers"]["friends_timelines"].remove(self.name[:-8])
|
||||||
return True
|
return True
|
||||||
elif dlg == widgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
return False
|
return False
|
||||||
@@ -783,7 +783,7 @@ class peopleBufferController(baseBufferController):
|
|||||||
|
|
||||||
def get_more_items(self):
|
def get_more_items(self):
|
||||||
try:
|
try:
|
||||||
items = self.session.get_more_items(self.function, users=True, name=self.name, count=self.session.settings["general"]["max_tweets_per_call"], cursor=self.session.db[self.name]["cursor"])
|
items = self.session.get_more_items(self.function, users=True, name=self.name, count=self.session.settings["general"]["max_tweets_per_call"], cursor=self.session.db[self.name]["cursor"], *self.args, **self.kwargs)
|
||||||
except TwythonError as e:
|
except TwythonError as e:
|
||||||
output.speak(e.message, True)
|
output.speak(e.message, True)
|
||||||
return
|
return
|
||||||
@@ -1088,7 +1088,7 @@ class conversationBufferController(searchBufferController):
|
|||||||
if dlg == widgetUtils.YES:
|
if dlg == widgetUtils.YES:
|
||||||
self.timer.cancel()
|
self.timer.cancel()
|
||||||
return True
|
return True
|
||||||
elif dlg == WidgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
class pocketBufferController(baseBufferController):
|
class pocketBufferController(baseBufferController):
|
||||||
|
@@ -178,6 +178,7 @@ class Controller(object):
|
|||||||
widgetUtils.connect_event(self.view.nb, widgetUtils.NOTEBOOK_PAGE_CHANGED, self.buffer_changed)
|
widgetUtils.connect_event(self.view.nb, widgetUtils.NOTEBOOK_PAGE_CHANGED, self.buffer_changed)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.report_error, self.view.reportError)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.report_error, self.view.reportError)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_documentation, self.view.doc)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_documentation, self.view.doc)
|
||||||
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_changelog, self.view.changelog)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.add_to_list, self.view.addToList)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.add_to_list, self.view.addToList)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.remove_from_list, self.view.removeFromList)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.remove_from_list, self.view.removeFromList)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.update_buffer, self.view.update_buffer)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.update_buffer, self.view.update_buffer)
|
||||||
@@ -357,7 +358,7 @@ class Controller(object):
|
|||||||
tl.timer.start()
|
tl.timer.start()
|
||||||
friends_timelines = buffersController.emptyPanel(self.view.nb, "friends_timelines", session.db["user_name"])
|
friends_timelines = buffersController.emptyPanel(self.view.nb, "friends_timelines", session.db["user_name"])
|
||||||
self.buffers.append(friends_timelines)
|
self.buffers.append(friends_timelines)
|
||||||
self.view.insert_buffer(friends_timelines.buffer , name=_(u"Followers' Timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(friends_timelines.buffer , name=_(u"Friends' Timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
for i in session.settings["other_buffers"]["friends_timelines"]:
|
for i in session.settings["other_buffers"]["friends_timelines"]:
|
||||||
tl = buffersController.peopleBufferController(self.view.nb, "get_friends_list", "%s-friends" % (i,), session, session.db["user_name"], screen_name=i)
|
tl = buffersController.peopleBufferController(self.view.nb, "get_friends_list", "%s-friends" % (i,), session, session.db["user_name"], screen_name=i)
|
||||||
self.buffers.append(tl)
|
self.buffers.append(tl)
|
||||||
@@ -922,7 +923,7 @@ class Controller(object):
|
|||||||
x = tweet["coordinates"]["coordinates"][0]
|
x = tweet["coordinates"]["coordinates"][0]
|
||||||
y = tweet["coordinates"]["coordinates"][1]
|
y = tweet["coordinates"]["coordinates"][1]
|
||||||
address = geocoder.reverse_geocode(y, x)
|
address = geocoder.reverse_geocode(y, x)
|
||||||
dlg = messages.viewTweet(address[0].__str__(), False)
|
dlg = commonMessageDialogs.view_geodata(address[0].__str__())
|
||||||
else:
|
else:
|
||||||
output.speak(_(u"There are no coordinates in this tweet"))
|
output.speak(_(u"There are no coordinates in this tweet"))
|
||||||
except GeocoderError:
|
except GeocoderError:
|
||||||
@@ -1447,6 +1448,11 @@ class Controller(object):
|
|||||||
webbrowser.open("manual.html")
|
webbrowser.open("manual.html")
|
||||||
os.chdir("../../")
|
os.chdir("../../")
|
||||||
|
|
||||||
|
def view_changelog(self, *args, **kwargs):
|
||||||
|
os.chdir("documentation")
|
||||||
|
webbrowser.open("changelog.html")
|
||||||
|
os.chdir("../")
|
||||||
|
|
||||||
def insert_buffer(self, buffer, position):
|
def insert_buffer(self, buffer, position):
|
||||||
self.buffers.insert(position, buffer)
|
self.buffers.insert(position, buffer)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
import platform
|
import platform
|
||||||
system = platform.system()
|
system = platform.system()
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
@@ -173,13 +174,14 @@ class viewTweet(basicTweet):
|
|||||||
text = text + "@%s: %s\n" % (tweetList[i]["user"]["screen_name"], tweetList[i]["text"])
|
text = text + "@%s: %s\n" % (tweetList[i]["user"]["screen_name"], tweetList[i]["text"])
|
||||||
rt_count = str(tweet["retweet_count"])
|
rt_count = str(tweet["retweet_count"])
|
||||||
favs_count = str(tweet["favorite_count"])
|
favs_count = str(tweet["favorite_count"])
|
||||||
|
source = str(re.sub(r"(?s)<.*?>", "", tweet["source"]))
|
||||||
if text == "":
|
if text == "":
|
||||||
if tweet.has_key("retweeted_status"):
|
if tweet.has_key("retweeted_status"):
|
||||||
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["text"])
|
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["text"])
|
||||||
else:
|
else:
|
||||||
text = tweet["text"]
|
text = tweet["text"]
|
||||||
text = self.clear_text(text)
|
text = self.clear_text(text)
|
||||||
self.message = message.viewTweet(text, rt_count, favs_count)
|
self.message = message.viewTweet(text, rt_count, favs_count,source)
|
||||||
self.message.set_title(len(text))
|
self.message.set_title(len(text))
|
||||||
else:
|
else:
|
||||||
text = tweet
|
text = tweet
|
||||||
|
@@ -261,24 +261,24 @@ class accountSettingsController(globalSettingsController):
|
|||||||
if change == True:
|
if change == True:
|
||||||
self.dialog.buffers.change_selected_item()
|
self.dialog.buffers.change_selected_item()
|
||||||
|
|
||||||
def manage_pocket(self, *args, **kwargs):
|
# def manage_pocket(self, *args, **kwargs):
|
||||||
if self.dialog.services.get_pocket_status() == _(u"Connect your Pocket account"):
|
# if self.dialog.services.get_pocket_status() == _(u"Connect your Pocket account"):
|
||||||
self.connect_pocket()
|
# self.connect_pocket()
|
||||||
else:
|
# else:
|
||||||
self.disconnect_pocket()
|
# self.disconnect_pocket()
|
||||||
|
|
||||||
def connect_pocket(self):
|
# def connect_pocket(self):
|
||||||
dlg = self.dialog.services.show_pocket_dialog()
|
# dlg = self.dialog.services.show_pocket_dialog()
|
||||||
if dlg == widgetUtils.YES:
|
# if dlg == widgetUtils.YES:
|
||||||
request_token = pocket.Pocket.get_request_token(consumer_key=keys.keyring.get("pocket_consumer_key"), redirect_uri="http://127.0.0.1:8080")
|
# request_token = pocket.Pocket.get_request_token(consumer_key=keys.keyring.get("pocket_consumer_key"), redirect_uri="http://127.0.0.1:8080")
|
||||||
auth_url = pocket.Pocket.get_auth_url(code=request_token, redirect_uri="http://127.0.0.1:8080")
|
# auth_url = pocket.Pocket.get_auth_url(code=request_token, redirect_uri="http://127.0.0.1:8080")
|
||||||
webbrowser.open_new_tab(auth_url)
|
# webbrowser.open_new_tab(auth_url)
|
||||||
httpd = BaseHTTPServer.HTTPServer(('127.0.0.1', 8080), authorisationHandler.handler)
|
# httpd = BaseHTTPServer.HTTPServer(('127.0.0.1', 8080), authorisationHandler.handler)
|
||||||
while authorisationHandler.logged == False:
|
# while authorisationHandler.logged == False:
|
||||||
httpd.handle_request()
|
# httpd.handle_request()
|
||||||
user_credentials = pocket.Pocket.get_credentials(consumer_key=keys.keyring.get("pocket_consumer_key"), code=request_token)
|
# user_credentials = pocket.Pocket.get_credentials(consumer_key=keys.keyring.get("pocket_consumer_key"), code=request_token)
|
||||||
self.dialog.services.set_pocket(True)
|
# self.dialog.services.set_pocket(True)
|
||||||
self.config["services"]["pocket_access_token"] = user_credentials["access_token"]
|
# self.config["services"]["pocket_access_token"] = user_credentials["access_token"]
|
||||||
|
|
||||||
def disconnect_dropbox(self):
|
def disconnect_dropbox(self):
|
||||||
self.config["services"]["pocket_access_token"] = ""
|
self.config["services"]["pocket_access_token"] = ""
|
||||||
|
@@ -31,6 +31,8 @@ class profileController(object):
|
|||||||
|
|
||||||
def get_data(self, screen_name):
|
def get_data(self, screen_name):
|
||||||
self.data = self.session.twitter.twitter.show_user(screen_name=screen_name)
|
self.data = self.session.twitter.twitter.show_user(screen_name=screen_name)
|
||||||
|
if screen_name != self.session.db["user_name"]:
|
||||||
|
self.friendship_status = self.session.twitter.twitter.show_friendship(source_screen_name=self.session.db["user_name"], target_screen_name=screen_name)
|
||||||
|
|
||||||
def fill_profile_fields(self):
|
def fill_profile_fields(self):
|
||||||
self.dialog.set_name(self.data["name"])
|
self.dialog.set_name(self.data["name"])
|
||||||
@@ -90,6 +92,17 @@ class profileController(object):
|
|||||||
if self.data["protected"] == True: protected = _(u"Yes")
|
if self.data["protected"] == True: protected = _(u"Yes")
|
||||||
else: protected = _(u"No")
|
else: protected = _(u"No")
|
||||||
string = string+ _(u"Protected: %s\n") % (protected)
|
string = string+ _(u"Protected: %s\n") % (protected)
|
||||||
|
if hasattr(self, "friendship_status"):
|
||||||
|
relation = False
|
||||||
|
friendship = "Relationship: "
|
||||||
|
if self.friendship_status["relationship"]["target"]["followed_by"]:
|
||||||
|
friendship += _(u"You follow {0}. ").format(self.data["name"],)
|
||||||
|
relation = True
|
||||||
|
if self.friendship_status["relationship"]["target"]["following"]:
|
||||||
|
friendship += _(u"{0} is following you.").format(self.data["name"],)
|
||||||
|
relation = True
|
||||||
|
if relation == True:
|
||||||
|
string = string+friendship+"\n"
|
||||||
string = string+_(u"Followers: %s\n Friends: %s\n") % (self.data["followers_count"], self.data["friends_count"])
|
string = string+_(u"Followers: %s\n Friends: %s\n") % (self.data["followers_count"], self.data["friends_count"])
|
||||||
if self.data["verified"] == True: verified = _(u"Yes")
|
if self.data["verified"] == True: verified = _(u"Yes")
|
||||||
else: verified = _(u"No")
|
else: verified = _(u"No")
|
||||||
|
@@ -101,8 +101,8 @@ languages = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
def available_languages():
|
def available_languages():
|
||||||
l = languages.keys()
|
l = languages.keys()
|
||||||
d = languages.values()
|
d = languages.values()
|
||||||
l.insert(0, '')
|
l.insert(0, '')
|
||||||
d.insert(0, _(u"autodetect"))
|
d.insert(0, _(u"autodetect"))
|
||||||
return sorted(zip(l, d))
|
return sorted(zip(l, d))
|
||||||
|
@@ -17,7 +17,7 @@ send_dm = string(default="control+win+d")
|
|||||||
user_details = string(default="control+win+shift+u")
|
user_details = string(default="control+win+shift+u")
|
||||||
exit = string(default="control+win+q")
|
exit = string(default="control+win+q")
|
||||||
open_timeline = string(default="control+win+u")
|
open_timeline = string(default="control+win+u")
|
||||||
remove_buffer = string(default="control+win+backspace")
|
remove_buffer = string(default="control+win+back")
|
||||||
audio = string(default="control+win+return")
|
audio = string(default="control+win+return")
|
||||||
url = string(default="control+win+b")
|
url = string(default="control+win+b")
|
||||||
go_home = string(default="control+win+home")
|
go_home = string(default="control+win+home")
|
||||||
@@ -28,7 +28,7 @@ repeat_item = string(default="control+win+space")
|
|||||||
copy_to_clipboard = string(default="control+win+shift+c")
|
copy_to_clipboard = string(default="control+win+shift+c")
|
||||||
search = string(default="control+win+/")
|
search = string(default="control+win+/")
|
||||||
find = string(default="control+win+shift+/")
|
find = string(default="control+win+shift+/")
|
||||||
check_for_updates = string(default="alt+win+u)
|
check_for_updates = string(default="alt+win+u")
|
||||||
list_manager = string(default="control+win+shift+l")
|
list_manager = string(default="control+win+shift+l")
|
||||||
configuration = string(default="control+win+o")
|
configuration = string(default="control+win+o")
|
||||||
accountConfiguration = string(default="control+win+shift+o")
|
accountConfiguration = string(default="control+win+shift+o")
|
||||||
|
@@ -5,16 +5,16 @@ import exceptions
|
|||||||
from ctypes import c_char_p
|
from ctypes import c_char_p
|
||||||
from libloader import load_library
|
from libloader import load_library
|
||||||
import paths
|
import paths
|
||||||
if application.snapshot == True:
|
#if application.snapshot == True:
|
||||||
if platform.architecture()[0][:2] == "32":
|
# if platform.architecture()[0][:2] == "32":
|
||||||
lib = load_library("snapshot_api_keys32", x86_path=paths.app_path("keys/lib"))
|
# lib = load_library("snapshot_api_keys32", x86_path=paths.app_path("keys/lib"))
|
||||||
else:
|
# else:
|
||||||
lib = load_library("snapshot_api_keys64", x64_path=paths.app_path("keys/lib"))
|
# lib = load_library("snapshot_api_keys64", x64_path=paths.app_path("keys/lib"))
|
||||||
|
#else:
|
||||||
|
if platform.architecture()[0][:2] == "32":
|
||||||
|
lib = load_library("stable_api_keys32", x86_path=paths.app_path("keys/lib"))
|
||||||
else:
|
else:
|
||||||
if platform.architecture()[0][:2] == "32":
|
lib = load_library("stable_api_keys64", x64_path=paths.app_path("keys/lib"))
|
||||||
lib = load_library("stable_api_keys32", x86_path=paths.app_path("keys/lib"))
|
|
||||||
else:
|
|
||||||
lib = load_library("stable_api_keys64", x64_path=paths.app_path("keys/lib"))
|
|
||||||
|
|
||||||
# import linuxKeys
|
# import linuxKeys
|
||||||
# lib = linuxKeys
|
# lib = linuxKeys
|
||||||
|
@@ -32,7 +32,7 @@ def load_library(library, x86_path='.', x64_path='.', *args, **kwargs):
|
|||||||
loaded = _do_load(lib, *args, **kwargs)
|
loaded = _do_load(lib, *args, **kwargs)
|
||||||
if loaded is not None:
|
if loaded is not None:
|
||||||
return loaded
|
return loaded
|
||||||
raise LibraryLoadError('unable to load %r. Provided library path: %r' % (library, path))
|
raise LibraryLoadError('unable to load %r. Provided library path: %r' % (library, lib))
|
||||||
|
|
||||||
def _do_load(file, *args, **kwargs):
|
def _do_load(file, *args, **kwargs):
|
||||||
loader = TYPES[platform.system()]['loader']
|
loader = TYPES[platform.system()]['loader']
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,9 @@ if system == "Windows":
|
|||||||
sys.stderr = open(os.path.join(os.getenv("temp"), "stderr.log"), "w")
|
sys.stderr = open(os.path.join(os.getenv("temp"), "stderr.log"), "w")
|
||||||
import languageHandler
|
import languageHandler
|
||||||
import paths
|
import paths
|
||||||
|
#check if TWBlue is installed (Windows only)
|
||||||
|
if os.path.exists(paths.app_path(u"Uninstall.exe")):
|
||||||
|
paths.mode="installed"
|
||||||
import commandline
|
import commandline
|
||||||
import config
|
import config
|
||||||
import sound
|
import sound
|
||||||
|
@@ -7,7 +7,7 @@ from platform_utils import paths as paths_
|
|||||||
|
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
mode = None
|
mode = "portable"
|
||||||
directory = None
|
directory = None
|
||||||
|
|
||||||
log = logging.getLogger("paths")
|
log = logging.getLogger("paths")
|
||||||
|
@@ -32,7 +32,7 @@ def load_library(library, x86_path='.', x64_path='.', *args, **kwargs):
|
|||||||
loaded = _do_load(lib, *args, **kwargs)
|
loaded = _do_load(lib, *args, **kwargs)
|
||||||
if loaded is not None:
|
if loaded is not None:
|
||||||
return loaded
|
return loaded
|
||||||
raise LibraryLoadError('unable to load %r. Provided library path: %r' % (library, path))
|
raise LibraryLoadError('unable to load %r. Provided library path: %r' % (library, lib))
|
||||||
|
|
||||||
def _do_load(file, *args, **kwargs):
|
def _do_load(file, *args, **kwargs):
|
||||||
loader = TYPES[platform.system()]['loader']
|
loader = TYPES[platform.system()]['loader']
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
import shutil
|
import shutil
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
import platform
|
import platform
|
||||||
|
import output
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
import wxUI as view
|
import wxUI as view
|
||||||
from controller import settings
|
from controller import settings
|
||||||
|
@@ -4,7 +4,7 @@ from multiplatform_widgets import widgets
|
|||||||
import application
|
import application
|
||||||
class sessionManagerWindow(wx.Dialog):
|
class sessionManagerWindow(wx.Dialog):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(sessionManagerWindow, self).__init__(parent=None, title="Session manager", size=wx.DefaultSize)
|
super(sessionManagerWindow, self).__init__(parent=None, title=_(u"Session manager"), size=wx.DefaultSize)
|
||||||
panel = wx.Panel(self)
|
panel = wx.Panel(self)
|
||||||
sizer = wx.BoxSizer(wx.VERTICAL)
|
sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
label = wx.StaticText(panel, -1, _(u"Accounts list"), size=wx.DefaultSize)
|
label = wx.StaticText(panel, -1, _(u"Accounts list"), size=wx.DefaultSize)
|
||||||
|
64
src/setup.py
64
src/setup.py
@@ -28,22 +28,22 @@ from glob import glob
|
|||||||
import wx
|
import wx
|
||||||
|
|
||||||
def get_architecture_files():
|
def get_architecture_files():
|
||||||
if platform.architecture()[0][:2] == "32":
|
if platform.architecture()[0][:2] == "32":
|
||||||
return [
|
return [
|
||||||
("", ["../windows-dependencies/x86/oggenc2.exe", "../windows-dependencies/x86/bootstrap.exe"]),
|
("", ["../windows-dependencies/x86/oggenc2.exe", "../windows-dependencies/x86/bootstrap.exe"]),
|
||||||
("Microsoft.VC90.CRT", glob("../windows-dependencies/x86/Microsoft.VC90.CRT/*")),
|
("Microsoft.VC90.CRT", glob("../windows-dependencies/x86/Microsoft.VC90.CRT/*")),
|
||||||
("Microsoft.VC90.MFC", glob("../windows-dependencies/x86/Microsoft.VC90.MFC/*")),]
|
("Microsoft.VC90.MFC", glob("../windows-dependencies/x86/Microsoft.VC90.MFC/*")),]
|
||||||
elif platform.architecture()[0][:2] == "64":
|
elif platform.architecture()[0][:2] == "64":
|
||||||
return [
|
return [
|
||||||
("", ["../windows-dependencies/x64/oggenc2.exe", "../windows-dependencies/x86/bootstrap.exe"]),
|
("", ["../windows-dependencies/x64/oggenc2.exe", "../windows-dependencies/x86/bootstrap.exe"]),
|
||||||
("Microsoft.VC90.CRT", glob("../windows-dependencies/x64/Microsoft.VC90.CRT/*")),
|
("Microsoft.VC90.CRT", glob("../windows-dependencies/x64/Microsoft.VC90.CRT/*")),
|
||||||
("Microsoft.VC90.MFC", glob("../windows-dependencies/x64/Microsoft.VC90.MFC/*")),]
|
("Microsoft.VC90.MFC", glob("../windows-dependencies/x64/Microsoft.VC90.MFC/*")),]
|
||||||
|
|
||||||
def get_data():
|
def get_data():
|
||||||
import accessible_output2
|
import accessible_output2
|
||||||
import sound_lib
|
import sound_lib
|
||||||
import enchant
|
import enchant
|
||||||
return [
|
return [
|
||||||
("", ["conf.defaults", "app-configuration.defaults", "icon.ico"]),
|
("", ["conf.defaults", "app-configuration.defaults", "icon.ico"]),
|
||||||
("requests", ["cacert.pem"]),
|
("requests", ["cacert.pem"]),
|
||||||
("accessible_output2/lib", glob("accessible_output2/lib/*.dll")),
|
("accessible_output2/lib", glob("accessible_output2/lib/*.dll")),
|
||||||
@@ -52,33 +52,33 @@ def get_data():
|
|||||||
]+get_sounds()+get_locales()+get_documentation()+sound_lib.find_datafiles()+accessible_output2.find_datafiles()+enchant.utils.win32_data_files()+get_architecture_files()+wx_files()
|
]+get_sounds()+get_locales()+get_documentation()+sound_lib.find_datafiles()+accessible_output2.find_datafiles()+enchant.utils.win32_data_files()+get_architecture_files()+wx_files()
|
||||||
|
|
||||||
def get_documentation ():
|
def get_documentation ():
|
||||||
answer = []
|
answer = []
|
||||||
depth = 6
|
depth = 6
|
||||||
for root, dirs, files in os.walk('documentation'):
|
for root, dirs, files in os.walk('documentation'):
|
||||||
if depth == 0:
|
if depth == 0:
|
||||||
break
|
break
|
||||||
new = (root, glob(os.path.join(root, "*.html")))
|
new = (root, glob(os.path.join(root, "*.html")))
|
||||||
answer.append(new)
|
answer.append(new)
|
||||||
depth -= 1
|
depth -= 1
|
||||||
return answer
|
return answer
|
||||||
|
|
||||||
def get_sounds():
|
def get_sounds():
|
||||||
answer = []
|
answer = []
|
||||||
depth = 6
|
depth = 6
|
||||||
for root, dirs, files in os.walk('sounds'):
|
for root, dirs, files in os.walk('sounds'):
|
||||||
if depth == 0:
|
if depth == 0:
|
||||||
break
|
break
|
||||||
new = (root, glob(os.path.join(root, "*.ogg")))
|
new = (root, glob(os.path.join(root, "*.ogg")))
|
||||||
answer.append(new)
|
answer.append(new)
|
||||||
depth -= 1
|
depth -= 1
|
||||||
return answer
|
return answer
|
||||||
|
|
||||||
def get_locales():
|
def get_locales():
|
||||||
answer = []
|
answer = []
|
||||||
for root, dirs, files in os.walk('locales'):
|
for root, dirs, files in os.walk('locales'):
|
||||||
new = (root, glob(os.path.join(root, '*.mo')))
|
new = (root, glob(os.path.join(root, '*.mo')))
|
||||||
answer.append(new)
|
answer.append(new)
|
||||||
return answer
|
return answer
|
||||||
|
|
||||||
def wx_files():
|
def wx_files():
|
||||||
wxDir=wx.__path__[0]
|
wxDir=wx.__path__[0]
|
||||||
@@ -99,7 +99,7 @@ def wx_files():
|
|||||||
return list(localeMoFiles)
|
return list(localeMoFiles)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
setup(
|
setup(
|
||||||
name = application.name,
|
name = application.name,
|
||||||
author = application.author,
|
author = application.author,
|
||||||
author_email = application.authorEmail,
|
author_email = application.authorEmail,
|
||||||
|
@@ -14,6 +14,8 @@ system = platform.system()
|
|||||||
from mysc.repeating_timer import RepeatingTimer
|
from mysc.repeating_timer import RepeatingTimer
|
||||||
from mysc.thread_utils import call_threaded
|
from mysc.thread_utils import call_threaded
|
||||||
import application
|
import application
|
||||||
|
import tempfile
|
||||||
|
import glob
|
||||||
URLPlayer = None
|
URLPlayer = None
|
||||||
|
|
||||||
def setup():
|
def setup():
|
||||||
|
1
src/sound_lib/external/__init__.py
vendored
1
src/sound_lib/external/__init__.py
vendored
@@ -4,5 +4,6 @@ import platform
|
|||||||
if platform.system() != 'Darwin':
|
if platform.system() != 'Darwin':
|
||||||
import sound_lib.external.pybass_aac
|
import sound_lib.external.pybass_aac
|
||||||
import sound_lib.external.pybass_alac
|
import sound_lib.external.pybass_alac
|
||||||
|
import sound_lib.external.pybassopus
|
||||||
import sound_lib.external.pybassflac
|
import sound_lib.external.pybassflac
|
||||||
import sound_lib.external.pybassmidi
|
import sound_lib.external.pybassmidi
|
||||||
|
47
src/sound_lib/external/pybassopus.py
vendored
Normal file
47
src/sound_lib/external/pybassopus.py
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# Copyright(c) Max Kolosov 2009 maxkolosov@inbox.ru
|
||||||
|
# http://vosolok2008.narod.ru
|
||||||
|
# BSD license
|
||||||
|
|
||||||
|
__version__ = '0.1'
|
||||||
|
__versionTime__ = '2009-11-15'
|
||||||
|
__author__ = 'Max Kolosov <maxkolosov@inbox.ru>'
|
||||||
|
__doc__ = '''
|
||||||
|
pybassflac.py - is ctypes python module for
|
||||||
|
BASSFLAC - extension to the BASS audio library,
|
||||||
|
enabling the playing of FLAC (Free Lossless Audio Codec) encoded files.
|
||||||
|
'''
|
||||||
|
|
||||||
|
import os, sys, ctypes, pybass
|
||||||
|
from paths import x86_path, x64_path
|
||||||
|
import libloader
|
||||||
|
|
||||||
|
bassopus_module = libloader.load_library('bassopus', x86_path=x86_path, x64_path=x64_path)
|
||||||
|
func_type = libloader.get_functype()
|
||||||
|
#Register the plugin with the Bass plugin system.
|
||||||
|
pybass.BASS_PluginLoad(libloader.find_library_path('bassopus', x86_path=x86_path, x64_path=x64_path), 0)
|
||||||
|
|
||||||
|
QWORD = pybass.QWORD
|
||||||
|
HSTREAM = pybass.HSTREAM
|
||||||
|
DOWNLOADPROC = pybass.DOWNLOADPROC
|
||||||
|
BASS_FILEPROCS = pybass.BASS_FILEPROCS
|
||||||
|
|
||||||
|
# BASS_CHANNELINFO type
|
||||||
|
BASS_CTYPE_STREAM_OPUS = 0x11200
|
||||||
|
|
||||||
|
|
||||||
|
#HSTREAM BASSOPUSDEF(BASS_OPUS_StreamCreateFile)(BOOL mem, const void *file, QWORD offset, QWORD length, DWORD flags);
|
||||||
|
BASS_OPUS_StreamCreateFile = func_type(HSTREAM, ctypes.c_byte, ctypes.c_void_p, QWORD, QWORD, ctypes.c_ulong)(('BASS_OPUS_StreamCreateFile', bassopus_module))
|
||||||
|
#HSTREAM BASSFLACDEF(BASS_FLAC_StreamCreateURL)(const char *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user);
|
||||||
|
BASS_OPUS_StreamCreateURL = func_type(HSTREAM, ctypes.c_char_p, ctypes.c_ulong, ctypes.c_ulong, DOWNLOADPROC, ctypes.c_void_p)(('BASS_OPUS_StreamCreateURL', bassopus_module))
|
||||||
|
#HSTREAM BASSFLACDEF(BASS_FLAC_StreamCreateFileUser)(DWORD system, DWORD flags, const BASS_FILEPROCS *procs, void *user);
|
||||||
|
BASS_OPUS_StreamCreateFileUser = func_type(HSTREAM, ctypes.c_ulong, ctypes.c_ulong, ctypes.POINTER(BASS_FILEPROCS), ctypes.c_void_p)(('BASS_OPUS_StreamCreateFileUser', bassopus_module))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if not pybass.BASS_Init(-1, 44100, 0, 0, 0):
|
||||||
|
print 'BASS_Init error', pybass.get_error_description(pybass.BASS_ErrorGetCode())
|
||||||
|
else:
|
||||||
|
handle = BASS_OPUS_StreamCreateFile(False, 'test.opus', 0, 0, 0)
|
||||||
|
pybass.play_handle(handle)
|
||||||
|
if not pybass.BASS_Free():
|
||||||
|
print 'BASS_Free error', pybass.get_error_description(pybass.BASS_ErrorGetCode())
|
BIN
src/sound_lib/lib/x64/bassopus.dll
Normal file
BIN
src/sound_lib/lib/x64/bassopus.dll
Normal file
Binary file not shown.
BIN
src/sound_lib/lib/x64/libbassopus.dylib
Normal file
BIN
src/sound_lib/lib/x64/libbassopus.dylib
Normal file
Binary file not shown.
BIN
src/sound_lib/lib/x64/libbassopus.so
Normal file
BIN
src/sound_lib/lib/x64/libbassopus.so
Normal file
Binary file not shown.
BIN
src/sound_lib/lib/x86/bassopus.dll
Normal file
BIN
src/sound_lib/lib/x86/bassopus.dll
Normal file
Binary file not shown.
BIN
src/sound_lib/lib/x86/libbassopus.dylib
Normal file
BIN
src/sound_lib/lib/x86/libbassopus.dylib
Normal file
Binary file not shown.
BIN
src/sound_lib/lib/x86/libbassopus.so
Normal file
BIN
src/sound_lib/lib/x86/libbassopus.so
Normal file
Binary file not shown.
@@ -5,14 +5,14 @@ from .channel import Channel
|
|||||||
class Music(Channel):
|
class Music(Channel):
|
||||||
|
|
||||||
def __init__(self, mem=False, file=None, offset=0, length=0, flags=0, freq=0):
|
def __init__(self, mem=False, file=None, offset=0, length=0, flags=0, freq=0):
|
||||||
handle = BASS_MusicLoad(mem, file, offset, length, flags, freq)
|
handle = pybass.BASS_MusicLoad(mem, file, offset, length, flags, freq)
|
||||||
super(Music, self).__init__(handle)
|
super(Music, self).__init__(handle)
|
||||||
self.add_attributes_to_mapping(
|
self.add_attributes_to_mapping(
|
||||||
music_amplify=pybass.BASS_ATTRIB_MUSIC_AMPLIFY,
|
music_amplify=pybass.BASS_ATTRIB_MUSIC_AMPLIFY,
|
||||||
music_bpm = BASS_ATTRIB_MUSIC_BPM,
|
music_bpm = pybass.BASS_ATTRIB_MUSIC_BPM,
|
||||||
music_pansep=BASS_ATTRIB_MUSIC_PANSEP,
|
music_pansep=pybass.BASS_ATTRIB_MUSIC_PANSEP,
|
||||||
music_speed=BASS_ATTRIB_MUSIC_SPEED,
|
music_speed=pybass.BASS_ATTRIB_MUSIC_SPEED,
|
||||||
music_vol_chan=BASS_ATTRIB_MUSIC_VOL_CHAN,
|
music_vol_chan=pybass.BASS_ATTRIB_MUSIC_VOL_CHAN,
|
||||||
music_vol_global=BASS_ATTRIB_MUSIC_VOL_GLOBAL,
|
music_vol_global=pybass.BASS_ATTRIB_MUSIC_VOL_GLOBAL,
|
||||||
music_vol_inst=BASS_ATTRIB_MUSIC_VOL_INST,
|
music_vol_inst=pybass.BASS_ATTRIB_MUSIC_VOL_INST,
|
||||||
)
|
)
|
||||||
|
BIN
src/sounds/FightingGames/audio.ogg
Normal file
BIN
src/sounds/FightingGames/audio.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/create_timeline.ogg
Normal file
BIN
src/sounds/FightingGames/create_timeline.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/delete_timeline.ogg
Normal file
BIN
src/sounds/FightingGames/delete_timeline.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/dm_received.ogg
Normal file
BIN
src/sounds/FightingGames/dm_received.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/dm_sent.ogg
Normal file
BIN
src/sounds/FightingGames/dm_sent.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/error.ogg
Normal file
BIN
src/sounds/FightingGames/error.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/favourite.ogg
Normal file
BIN
src/sounds/FightingGames/favourite.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/favourites_timeline_updated.ogg
Normal file
BIN
src/sounds/FightingGames/favourites_timeline_updated.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/geo.ogg
Normal file
BIN
src/sounds/FightingGames/geo.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/limit.ogg
Normal file
BIN
src/sounds/FightingGames/limit.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/list_tweet.ogg
Normal file
BIN
src/sounds/FightingGames/list_tweet.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/max_length.ogg
Normal file
BIN
src/sounds/FightingGames/max_length.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/mention_received.ogg
Normal file
BIN
src/sounds/FightingGames/mention_received.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/new_event.ogg
Normal file
BIN
src/sounds/FightingGames/new_event.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/ready.ogg
Normal file
BIN
src/sounds/FightingGames/ready.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/reply_send.ogg
Normal file
BIN
src/sounds/FightingGames/reply_send.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/retweet_send.ogg
Normal file
BIN
src/sounds/FightingGames/retweet_send.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/search_updated.ogg
Normal file
BIN
src/sounds/FightingGames/search_updated.ogg
Normal file
Binary file not shown.
1
src/sounds/FightingGames/sound notes.txt
Normal file
1
src/sounds/FightingGames/sound notes.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
All the sounds used in the soundpack do not belong to us. They belong to the origenal creaters.
|
BIN
src/sounds/FightingGames/trends_updated.ogg
Normal file
BIN
src/sounds/FightingGames/trends_updated.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/tweet_received.ogg
Normal file
BIN
src/sounds/FightingGames/tweet_received.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/tweet_send.ogg
Normal file
BIN
src/sounds/FightingGames/tweet_send.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/tweet_timeline.ogg
Normal file
BIN
src/sounds/FightingGames/tweet_timeline.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/update_followers.ogg
Normal file
BIN
src/sounds/FightingGames/update_followers.ogg
Normal file
Binary file not shown.
BIN
src/sounds/FightingGames/volume_changed.ogg
Normal file
BIN
src/sounds/FightingGames/volume_changed.ogg
Normal file
Binary file not shown.
1
src/sounds/Qwitter/sound notes.txt
Normal file
1
src/sounds/Qwitter/sound notes.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
All the sounds used in the soundpack do not belong to us. They belong to the origenal creaters.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user