Compare commits
10 Commits
unstable
...
build2016.
Author | SHA1 | Date | |
---|---|---|---|
740ae124f9 | |||
17977d2a88 | |||
ed29923d2e | |||
6228e7229b | |||
677f92af68 | |||
ce43d8b30e | |||
09470e85ce | |||
bab896aba1 | |||
519381684d | |||
a66b35190f |
@@ -8,8 +8,8 @@ Socializer's functionality is far to be perfect, in fact there are lots of metho
|
|||||||
|
|
||||||
Before downloading, take in to account the following: This source code is completely experimental. The current functionality in this application is not very useful. If you decide to use nightly build versions, take into account that this doesn't work as an application for everyday use yet.
|
Before downloading, take in to account the following: This source code is completely experimental. The current functionality in this application is not very useful. If you decide to use nightly build versions, take into account that this doesn't work as an application for everyday use yet.
|
||||||
|
|
||||||
Version: 2016.05.25
|
Version: 2016.07.9
|
||||||
Build date: May 25 2016
|
Build date: Jul 9 2016
|
||||||
[Download socializer weekly build](https://github.com/manuelcortez/socializer/blob/master/nightly/socializer-nightly-build.zip?raw=true)
|
[Download socializer weekly build](https://github.com/manuelcortez/socializer/blob/master/nightly/socializer-nightly-build.zip?raw=true)
|
||||||
|
|
||||||
I have started this effort as an open source project on Feb 13, 2016. Pull requests and bug reports are welcome. Socializer is not a definitive name for this project, it could be changed in future.
|
I have started this effort as an open source project on Feb 13, 2016. Pull requests and bug reports are welcome. Socializer is not a definitive name for this project, it could be changed in future.
|
||||||
|
@@ -1,13 +1,13 @@
|
|||||||
% Changelog
|
% Changelog
|
||||||
|
|
||||||
## Changes for the current build ()
|
## Changes for the current build (08/07/2016)
|
||||||
|
|
||||||
* Removed platform from "last seen" column in the friends list as it could cause some problems and it was being not so exact.
|
* Removed platform from "last seen" column in the friends list as it could cause some problems and it was being not so exact.
|
||||||
* Now deleted audios are not parsed and displayed as "audio removed from library". They are silently ignored.
|
* Now deleted audios are not parsed and displayed as "audio removed from library". They are silently ignored.
|
||||||
* It's possible to open a friends timeline for others.
|
* It's possible to open a friends timeline for others.
|
||||||
* Fixed some strange bugs in the built version.
|
* Fixed some strange bugs in the built version.
|
||||||
* Deactivated accounts will not cause problems in friends lists. They will be displayed as deactivated, wich means that it'll be impossible to interact with those accounts.
|
* Deactivated accounts will not cause problems in friends lists. They will be displayed as deactivated, wich means that it'll be impossible to interact with those accounts.
|
||||||
* When opened, the client will set online for the user account, it'll inform VK that this user is currently online. This parameter will be updated every 15 minutes, as stated in the API documentation. When exiting, Socializer will try to set the account as offline. Friends and other people could use this parameter to see if you are using VK in the moment.
|
* When opened, the client will set online for the user account, it'll inform VK that this user is currently online. This parameter will be updated every 15 minutes, as stated in the API documentation.
|
||||||
* When opened, socializer will try to create chat buffers for all unread messages.
|
* When opened, socializer will try to create chat buffers for all unread messages.
|
||||||
* Update some information on certain posts when an item is selected. For example, update the date of a post.
|
* Update some information on certain posts when an item is selected. For example, update the date of a post.
|
||||||
* Read messages will be marked as read in the social network, so it'll cause that your friends could see that you have read the message and socializer will not load chat buffers with read messages at startup.
|
* Read messages will be marked as read in the social network, so it'll cause that your friends could see that you have read the message and socializer will not load chat buffers with read messages at startup.
|
||||||
@@ -18,6 +18,8 @@
|
|||||||
* Albums will be empty at startup. In order to get the album's audios, you'll have to navigate to the album and press the button "load". It'll load the needed information for displaying and playing the added songs
|
* Albums will be empty at startup. In order to get the album's audios, you'll have to navigate to the album and press the button "load". It'll load the needed information for displaying and playing the added songs
|
||||||
* If the config is invalid (for example you changed email or phone in the VK site and didn't changed that in Socializer, or just entered invalid credentials), the program will display an error with instructions for fixing the problem.
|
* If the config is invalid (for example you changed email or phone in the VK site and didn't changed that in Socializer, or just entered invalid credentials), the program will display an error with instructions for fixing the problem.
|
||||||
* Now is possible to press enter in the password or email/phone field and it'll do the action of the OK button.
|
* Now is possible to press enter in the password or email/phone field and it'll do the action of the OK button.
|
||||||
|
* If you have set russian as the main language in the VK site, you'll see names in genitive and instrumental cases in certain phrases.
|
||||||
|
* Updated russian and spanish translations.
|
||||||
|
|
||||||
## Changes on build 2016.05.25
|
## Changes on build 2016.05.25
|
||||||
|
|
||||||
|
Binary file not shown.
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
name = "Socializer"
|
name = "Socializer"
|
||||||
version = "0.13"
|
version = "0.14"
|
||||||
author = u"Manuel Cortéz"
|
author = u"Manuel Cortéz"
|
||||||
authorEmail = "manuel@manuelcortez.net"
|
authorEmail = "manuel@manuelcortez.net"
|
||||||
copyright = u"Copyright (C) 2016, Manuel cortéz."
|
copyright = u"Copyright (C) 2016, Manuel cortéz."
|
||||||
|
@@ -365,6 +365,7 @@ class audioBuffer(feedBuffer):
|
|||||||
result = self.session.vk.client.audio.delete(**args)
|
result = self.session.vk.client.audio.delete(**args)
|
||||||
if int(result) == 1:
|
if int(result) == 1:
|
||||||
output.speak(_(u"Removed audio from library"))
|
output.speak(_(u"Removed audio from library"))
|
||||||
|
self.tab.list.remove_item(self.tab.list.get_selected())
|
||||||
|
|
||||||
def move_to_album(self, *args, **kwargs):
|
def move_to_album(self, *args, **kwargs):
|
||||||
album = selector.audioAlbum(_(u"Select the album where you want to move this song"), self.session)
|
album = selector.audioAlbum(_(u"Select the album where you want to move this song"), self.session)
|
||||||
@@ -426,11 +427,10 @@ class chatBuffer(baseBuffer):
|
|||||||
|
|
||||||
def onFocus(self, *args, **kwargs):
|
def onFocus(self, *args, **kwargs):
|
||||||
msg = self.session.db[self.name]["items"][-1]
|
msg = self.session.db[self.name]["items"][-1]
|
||||||
if msg["read_state"] == 0 and msg["id"] not in self.reads:
|
if msg.has_key("read_state") and msg["read_state"] == 0 and msg["id"] not in self.reads:
|
||||||
self.reads.append(msg["id"])
|
self.reads.append(msg["id"])
|
||||||
self.session.db[self.name]["items"][-1]["read_state"] = 1
|
self.session.db[self.name]["items"][-1]["read_state"] = 1
|
||||||
|
|
||||||
|
|
||||||
def create_tab(self, parent):
|
def create_tab(self, parent):
|
||||||
self.tab = home.chatTab(parent)
|
self.tab = home.chatTab(parent)
|
||||||
|
|
||||||
@@ -497,3 +497,10 @@ class peopleBuffer(feedBuffer):
|
|||||||
widgetUtils.connect_event(m, widgetUtils.MENU, self.new_chat, menuitem=m.message)
|
widgetUtils.connect_event(m, widgetUtils.MENU, self.new_chat, menuitem=m.message)
|
||||||
widgetUtils.connect_event(m, widgetUtils.MENU, self.open_timeline, menuitem=m.timeline)
|
widgetUtils.connect_event(m, widgetUtils.MENU, self.open_timeline, menuitem=m.timeline)
|
||||||
return m
|
return m
|
||||||
|
|
||||||
|
def open_post(self, *args, **kwargs): pass
|
||||||
|
|
||||||
|
def play_audio(self, *args, **kwargs): pass
|
||||||
|
|
||||||
|
def pause_audio(self, *args, **kwargs): pass
|
||||||
|
|
||||||
|
@@ -193,10 +193,6 @@ class Controller(object):
|
|||||||
|
|
||||||
def exit(self, *args, **kwargs):
|
def exit(self, *args, **kwargs):
|
||||||
log.debug("Receibed an exit signal. closing...")
|
log.debug("Receibed an exit signal. closing...")
|
||||||
try:
|
|
||||||
self.session.vk.client.account.setOffline()
|
|
||||||
except VkAuthError:
|
|
||||||
pass
|
|
||||||
self.disconnect_events()
|
self.disconnect_events()
|
||||||
self.window.Destroy()
|
self.window.Destroy()
|
||||||
wx.GetApp().ExitMainLoop()
|
wx.GetApp().ExitMainLoop()
|
||||||
@@ -315,7 +311,7 @@ class Controller(object):
|
|||||||
buffer = buffers.chatBuffer(parent=self.window.tb, name="{0}_messages".format(user_id,), composefunc="compose_message", session=self.session, count=200, user_id=user_id, rev=1)
|
buffer = buffers.chatBuffer(parent=self.window.tb, name="{0}_messages".format(user_id,), composefunc="compose_message", session=self.session, count=200, user_id=user_id, rev=1)
|
||||||
self.buffers.append(buffer)
|
self.buffers.append(buffer)
|
||||||
# Translators: {0} will be replaced with an user.
|
# Translators: {0} will be replaced with an user.
|
||||||
self.window.insert_buffer(buffer.tab, _(u"Chat with {0}").format(self.session.get_user_name(user_id,)), self.window.search("chats"))
|
self.window.insert_buffer(buffer.tab, _(u"Chat with {0}").format(self.session.get_user_name(user_id, "ins")), self.window.search("chats"))
|
||||||
if setfocus:
|
if setfocus:
|
||||||
pos = self.window.search(buffer.name)
|
pos = self.window.search(buffer.name)
|
||||||
self.window.change_buffer(pos)
|
self.window.change_buffer(pos)
|
||||||
@@ -348,7 +344,10 @@ class Controller(object):
|
|||||||
self.session.soundplayer.play("chat.ogg")
|
self.session.soundplayer.play("chat.ogg")
|
||||||
|
|
||||||
def set_online(self):
|
def set_online(self):
|
||||||
r = self.session.vk.client.account.setOnline()
|
try:
|
||||||
|
r = self.session.vk.client.account.setOnline()
|
||||||
|
except:
|
||||||
|
log.error("Error in setting online for the current user")
|
||||||
|
|
||||||
def create_unread_messages(self):
|
def create_unread_messages(self):
|
||||||
msgs = self.session.vk.client.messages.getDialogs(count=200, unread=1)
|
msgs = self.session.vk.client.messages.getDialogs(count=200, unread=1)
|
||||||
|
@@ -81,7 +81,7 @@ class audioPlayer(object):
|
|||||||
self.worker.start()
|
self.worker.start()
|
||||||
|
|
||||||
def player_function(self):
|
def player_function(self):
|
||||||
if self.stream != None and self.stream.is_playing == False and self.stopped == False:
|
if self.stream != None and self.stream.is_playing == False and self.stopped == False and len(self.stream) == self.stream.position:
|
||||||
if len(self.queue) == 0:
|
if len(self.queue) == 0:
|
||||||
self.worker.cancel()
|
self.worker.cancel()
|
||||||
return
|
return
|
||||||
|
Binary file not shown.
@@ -7,7 +7,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2016-06-29 13:16-0500\n"
|
"POT-Creation-Date: 2016-06-29 13:16-0500\n"
|
||||||
"PO-Revision-Date: 2016-07-07 11:59+0400\n"
|
"PO-Revision-Date: 2016-07-07 13:17-0600\n"
|
||||||
"Last-Translator: Valeria <luciana.lu3a@gmail.com>\n"
|
"Last-Translator: Valeria <luciana.lu3a@gmail.com>\n"
|
||||||
"Language-Team: Valeria K <luciana.lu3a@gmail.com>\n"
|
"Language-Team: Valeria K <luciana.lu3a@gmail.com>\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
@@ -15,7 +15,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: pygettext.py 1.5\n"
|
"Generated-By: pygettext.py 1.5\n"
|
||||||
"X-Generator: Poedit 1.5.7\n"
|
"X-Generator: Poedit 1.6.11\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
@@ -45,9 +45,9 @@ def add_attachment(attachment):
|
|||||||
elif attachment["type"] == "photo":
|
elif attachment["type"] == "photo":
|
||||||
msg = attachment["photo"]["text"]
|
msg = attachment["photo"]["text"]
|
||||||
if msg == "":
|
if msg == "":
|
||||||
return "photo with no description available"
|
return _(u"photo with no description available")
|
||||||
elif attachment["type"] == "video":
|
elif attachment["type"] == "video":
|
||||||
msg = u"video: {0}".format(attachment["video"]["title"],)
|
msg = _(u"video: {0}").format(attachment["video"]["title"],)
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
def add_text(status):
|
def add_text(status):
|
||||||
@@ -273,7 +273,7 @@ class vkSession(object):
|
|||||||
data2 = {"profiles": [], "groups": []}
|
data2 = {"profiles": [], "groups": []}
|
||||||
for i in data["items"]:
|
for i in data["items"]:
|
||||||
data2["profiles"].append(i)
|
data2["profiles"].append(i)
|
||||||
self.process_usernames(data2)
|
self.process_usernames(data2)
|
||||||
if data.has_key("profiles") and data.has_key("groups"):
|
if data.has_key("profiles") and data.has_key("groups"):
|
||||||
self.process_usernames(data)
|
self.process_usernames(data)
|
||||||
else:
|
else:
|
||||||
@@ -289,11 +289,9 @@ class vkSession(object):
|
|||||||
def get_user_name(self, user_id, case_name="gen"):
|
def get_user_name(self, user_id, case_name="gen"):
|
||||||
if user_id > 0:
|
if user_id > 0:
|
||||||
if self.db["users"].has_key(user_id):
|
if self.db["users"].has_key(user_id):
|
||||||
# print self.db["users"][user_id]
|
|
||||||
if self.db["users"][user_id].has_key(case_name):
|
if self.db["users"][user_id].has_key(case_name):
|
||||||
return self.db["users"][user_id][case_name]
|
return self.db["users"][user_id][case_name]
|
||||||
else:
|
else:
|
||||||
print self.db["users"][user_id], self.db["users"][user_id].keys()
|
|
||||||
return self.db["users"][user_id]["nom"]
|
return self.db["users"][user_id]["nom"]
|
||||||
else:
|
else:
|
||||||
return "no specified user"
|
return "no specified user"
|
||||||
@@ -331,10 +329,15 @@ class vkSession(object):
|
|||||||
gids = "{0},".format(i["id"],)
|
gids = "{0},".format(i["id"],)
|
||||||
if not "ru" in languageHandler.getLanguage():
|
if not "ru" in languageHandler.getLanguage():
|
||||||
return
|
return
|
||||||
users = self.vk.client.users.get(user_ids=ids, fields="first_name, last_name", name_case="gen")
|
if ids != "":
|
||||||
for i in users:
|
users_genitive = self.vk.client.users.get(user_ids=ids, fields="first_name, last_name", name_case="gen")
|
||||||
if self.db["users"].has_key(i["id"]):
|
users_instrumental = self.vk.client.users.get(user_ids=ids, fields="first_name, last_name", name_case="ins")
|
||||||
self.db["users"][i["id"]]["gen"] = u"{0} {1}".format(i["first_name"], i["last_name"])
|
for i in users_genitive:
|
||||||
|
if self.db["users"].has_key(i["id"]):
|
||||||
|
self.db["users"][i["id"]]["gen"] = u"{0} {1}".format(i["first_name"], i["last_name"])
|
||||||
|
for i in users_instrumental:
|
||||||
|
if self.db["users"].has_key(i["id"]):
|
||||||
|
self.db["users"][i["id"]]["ins"] = u"{0} {1}".format(i["first_name"], i["last_name"])
|
||||||
|
|
||||||
def get_my_data(self):
|
def get_my_data(self):
|
||||||
log.debug("Getting user identifier...")
|
log.debug("Getting user identifier...")
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{"current_version": "0.13",
|
{"current_version": "0.14",
|
||||||
"description": "Added chats. Timeline's creation. View friends. Some bugfixes.",
|
"description": "Added management for audio albums. Bugfixes. Updated translations. Added a context menu for some items. Unread chats will be opened at startup.",
|
||||||
"downloads":
|
"downloads":
|
||||||
{"Windows32": "https://github.com/manuelcortez/socializer/blob/master/nightly/socializer-nightly-build.zip?raw=true"}}
|
{"Windows32": "https://github.com/manuelcortez/socializer/blob/master/nightly/socializer-nightly-build.zip?raw=true"}}
|
Reference in New Issue
Block a user