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.
|
||||
|
||||
Version: 2016.05.25
|
||||
Build date: May 25 2016
|
||||
Version: 2016.07.9
|
||||
Build date: Jul 9 2016
|
||||
[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.
|
||||
|
@@ -1,13 +1,13 @@
|
||||
% 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.
|
||||
* 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.
|
||||
* 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.
|
||||
* 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.
|
||||
* 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.
|
||||
@@ -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
|
||||
* 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.
|
||||
* 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
|
||||
|
||||
|
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
name = "Socializer"
|
||||
version = "0.13"
|
||||
version = "0.14"
|
||||
author = u"Manuel Cortéz"
|
||||
authorEmail = "manuel@manuelcortez.net"
|
||||
copyright = u"Copyright (C) 2016, Manuel cortéz."
|
||||
|
@@ -365,6 +365,7 @@ class audioBuffer(feedBuffer):
|
||||
result = self.session.vk.client.audio.delete(**args)
|
||||
if int(result) == 1:
|
||||
output.speak(_(u"Removed audio from library"))
|
||||
self.tab.list.remove_item(self.tab.list.get_selected())
|
||||
|
||||
def move_to_album(self, *args, **kwargs):
|
||||
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):
|
||||
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.session.db[self.name]["items"][-1]["read_state"] = 1
|
||||
|
||||
|
||||
def create_tab(self, parent):
|
||||
self.tab = home.chatTab(parent)
|
||||
|
||||
@@ -496,4 +496,11 @@ class peopleBuffer(feedBuffer):
|
||||
m = menus.peopleMenu()
|
||||
widgetUtils.connect_event(m, widgetUtils.MENU, self.new_chat, menuitem=m.message)
|
||||
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):
|
||||
log.debug("Receibed an exit signal. closing...")
|
||||
try:
|
||||
self.session.vk.client.account.setOffline()
|
||||
except VkAuthError:
|
||||
pass
|
||||
self.disconnect_events()
|
||||
self.window.Destroy()
|
||||
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)
|
||||
self.buffers.append(buffer)
|
||||
# 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:
|
||||
pos = self.window.search(buffer.name)
|
||||
self.window.change_buffer(pos)
|
||||
@@ -348,7 +344,10 @@ class Controller(object):
|
||||
self.session.soundplayer.play("chat.ogg")
|
||||
|
||||
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):
|
||||
msgs = self.session.vk.client.messages.getDialogs(count=200, unread=1)
|
||||
|
@@ -81,7 +81,7 @@ class audioPlayer(object):
|
||||
self.worker.start()
|
||||
|
||||
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:
|
||||
self.worker.cancel()
|
||||
return
|
||||
|
Binary file not shown.
@@ -7,7 +7,7 @@ msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \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"
|
||||
"Language-Team: Valeria K <luciana.lu3a@gmail.com>\n"
|
||||
"Language: ru\n"
|
||||
@@ -15,7 +15,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\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"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
|
@@ -45,9 +45,9 @@ def add_attachment(attachment):
|
||||
elif attachment["type"] == "photo":
|
||||
msg = attachment["photo"]["text"]
|
||||
if msg == "":
|
||||
return "photo with no description available"
|
||||
return _(u"photo with no description available")
|
||||
elif attachment["type"] == "video":
|
||||
msg = u"video: {0}".format(attachment["video"]["title"],)
|
||||
msg = _(u"video: {0}").format(attachment["video"]["title"],)
|
||||
return msg
|
||||
|
||||
def add_text(status):
|
||||
@@ -273,7 +273,7 @@ class vkSession(object):
|
||||
data2 = {"profiles": [], "groups": []}
|
||||
for i in data["items"]:
|
||||
data2["profiles"].append(i)
|
||||
self.process_usernames(data2)
|
||||
self.process_usernames(data2)
|
||||
if data.has_key("profiles") and data.has_key("groups"):
|
||||
self.process_usernames(data)
|
||||
else:
|
||||
@@ -289,11 +289,9 @@ class vkSession(object):
|
||||
def get_user_name(self, user_id, case_name="gen"):
|
||||
if user_id > 0:
|
||||
if self.db["users"].has_key(user_id):
|
||||
# print self.db["users"][user_id]
|
||||
if self.db["users"][user_id].has_key(case_name):
|
||||
return self.db["users"][user_id][case_name]
|
||||
else:
|
||||
print self.db["users"][user_id], self.db["users"][user_id].keys()
|
||||
return self.db["users"][user_id]["nom"]
|
||||
else:
|
||||
return "no specified user"
|
||||
@@ -331,10 +329,15 @@ class vkSession(object):
|
||||
gids = "{0},".format(i["id"],)
|
||||
if not "ru" in languageHandler.getLanguage():
|
||||
return
|
||||
users = self.vk.client.users.get(user_ids=ids, fields="first_name, last_name", name_case="gen")
|
||||
for i in users:
|
||||
if self.db["users"].has_key(i["id"]):
|
||||
self.db["users"][i["id"]]["gen"] = u"{0} {1}".format(i["first_name"], i["last_name"])
|
||||
if ids != "":
|
||||
users_genitive = self.vk.client.users.get(user_ids=ids, fields="first_name, last_name", name_case="gen")
|
||||
users_instrumental = self.vk.client.users.get(user_ids=ids, fields="first_name, last_name", name_case="ins")
|
||||
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):
|
||||
log.debug("Getting user identifier...")
|
||||
|
@@ -1,4 +1,4 @@
|
||||
{"current_version": "0.13",
|
||||
"description": "Added chats. Timeline's creation. View friends. Some bugfixes.",
|
||||
{"current_version": "0.14",
|
||||
"description": "Added management for audio albums. Bugfixes. Updated translations. Added a context menu for some items. Unread chats will be opened at startup.",
|
||||
"downloads":
|
||||
{"Windows32": "https://github.com/manuelcortez/socializer/blob/master/nightly/socializer-nightly-build.zip?raw=true"}}
|
Reference in New Issue
Block a user