Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Conky + vk api + python  (Прочитано 3548 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн funk2256

  • Автор темы
  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
Conky + vk api + python
« : 22 Февраля 2016, 10:43:34 »
И так, уважаемые форумчане. Я наверное поднадоел уже со своими коньками, но появилась одна идейка, если мы можем победить и выводить инфу о кол-ве писем с gmail или любой другой почты. То почему бы не получить информацию в коньках в виде записи с группы? Экстренно осваиваю питон, основной синтаксис уже понятен, но не могу разобраться с vk api. Нагуглил вот такую штуку, зарегистрировал приложение, но при выполнении скрипта что то идет не так.

funk@funk-HP-Pavilion-g6-Notebook-PC:~/.scripts$ ./vk.py
Traceback (most recent call last):
  File "./vk.py", line 4, in <module>
    import vk
  File "/home/funk/.scripts/vk.py", line 6, in <module>
    vkapi = vk.API('****', '*****@xakep.ru', '*******')
AttributeError: 'module' object has no attribute 'API'

Логин и пароль введены API ID так же введен. В чем соль? гуглил по ошибке но ни чего толком не нашел.


Пользователь решил продолжить мысль [time]22 Февраль 2016, 11:45:56[/time]:
Код скрипта забыл приерепить. Вот:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
import vk

vkapi = vk.API('****', '*****@xakep.ru', '*****')
vkapi.access_token=s
vkapi.wall.post(message="Hello, world")

Пользователь решил продолжить мысль 22 Февраля 2016, 10:53:47:
Как я понимаю будет примерно что то такое? Документация по VK API.
vkapi.wall.get(pn6)
« Последнее редактирование: 22 Февраля 2016, 10:53:47 от funk2256 »
Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #1 : 22 Февраля 2016, 12:06:35 »
Ну Вам же черным по белому: «'module' object has no attribute 'API'» — «у модуля vk нет атрибута 'API'»
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн funk2256

  • Автор темы
  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #2 : 22 Февраля 2016, 12:13:01 »
Тут же есть блин, устанавливал библиотеку
sudo easy_install vkЭто как это так получается тогда? В статьях есть API, а у меня нет.
« Последнее редактирование: 22 Февраля 2016, 12:16:21 от funk2256 »
Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #3 : 22 Февраля 2016, 12:21:55 »
Запустите интерпретатор и посмотрите чего есть, а чего нет
Код: (python) [Выделить]
import vk
help(vk)
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн funk2256

  • Автор темы
  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #4 : 22 Февраля 2016, 12:52:58 »
Help on package vk:

NAME
    vk

FILE
    /usr/local/lib/python2.7/dist-packages/vk-2.0.2-py2.7.egg/vk/__init__.py

PACKAGE CONTENTS
    api
    exceptions
    logs
    mixins
    tests
    utils

DATA
    VERSION = '2.0.2'
    __version__ = '2.0.2'
    logger = <logging.Logger object>
    version = '2.0.2'

VERSION


Пользователь решил продолжить мысль [time]22 Февраль 2016, 14:25:34[/time]:
Попробую сейчас поставить вот это
sudo easy_install vk_apiМожет с ним заработает

Пользователь решил продолжить мысль [time]22 Февраль 2016, 14:50:17[/time]:
import vk_api


def main():
    """ Пример получения последнего сообщения со стены """

    login, password = 'python@vk.com', 'mypassword'
    vk_session = vk_api.VkApi(login, password)

    try:
        vk_session.authorization()
    except vk_api.AuthorizationError as error_msg:
        print(error_msg)
        return

    vk = vk_session.get_api()

    """
        VkApi.method позволяет выполнять запросы к API. В этом примере
        используется метод wall.get (https://vk.com/dev/wall.get) с параметром
        count = 1, т.е. мы получаем один последний пост со стены текущего
        пользователя.
    """
    response = vk.wall.get(count=1)  # Используем метод wall.get

    if response['items']:
        print(response['items'][0])

if __name__ == '__main__':
    main()

Нашел вот такой скрипт. При его выполнении получил выхлоп
funk@funk-HP-Pavilion-g6-Notebook-PC:~/.scripts$ ./vk.py
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning

/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
{u'post_source': {u'type': u'api'}, u'copy_history': [{u'attachments': [{u'video': {u'photo_130': u'http://cs631517.vk.me/v631517285/13e0d/8NxGd_cmaFw.jpg', u'access_key': u'3fc35773d5acc6efaa', u'photo_320': u'http://cs631517.vk.me/v631517285/13e0b/upfw1Iu_1bM.jpg', u'description': u'\u0425\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0432\u0441\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f!', u'title': u'\u0418\u0437 \u0444\u0438\u043b\u044c\u043c\u0430 1+1', u'views': 22335, u'comments': 0, u'photo_800': u'http://cs631517.vk.me/v631517285/13e0a/DR-_ZeFwleg.jpg', u'date': 1455000665, u'duration': 106, u'can_add': 1, u'id': 171808543, u'owner_id': -34137285}, u'type': u'video'}, {u'audio': {u'title': u'Boogie Wonderland (1+1)', u'url': u'http://cs4-2v4.vk-cdn.net/p21/ecf17f87dd16fa.mp3?extra=vy7gzLXwGlZckc_rLNekbUdaUCrT5ufFKRL5yQDMqEG-RK2EJijqga00M0jBND7odx6ByCOIfxZRUbvpD-2ETSykcfyvb1EibFlCx8MZfCdVlu4', u'artist': u'Earth Wind & Fire', u'lyrics_id': 313137373, u'date': 1455543351, u'duration': 291, u'genre_id': 14, u'id': 440589759, u'owner_id': 2000061750}, u'type': u'audio'}, {u'audio': {u'title': u'You\u2019re Goin\u2019 Miss Your Candyman (1+1)', u'url': u'http://cs4-4v4.vk-cdn.net/p11/601bd484dbe63c.mp3?extra=XWfnOL-8TiyTh3OHUBIKbh00y0FyF2hdbsnvHB5jPL4oCPkFWGSKDz-vTy_tMmN8dQt7Erv0Wwk-K818IOwDbIQ80vV3yoDULeulMdPWIjGDjEM', u'artist': u'Earth, Wind & Fire ', u'lyrics_id': 313137326, u'date': 1455543351, u'duration': 260, u'genre_id': 18, u'id': 441451142, u'owner_id': 2000058079}, u'type': u'audio'}, {u'audio': {u'title': u'September (1+1)', u'url': u'http://cs4-3v4.vk-cdn.net/p11/443f1c303988b9.mp3?extra=mTSXy6eXSC3cfS1uO-OGlvjTdhA_sDjLByzvZkA6gTp6RmGQv6qe6uDU0zGlooRPUS8Fn6lWaD8eYeEj9sy6ci4xi9_ji1i1z2Y67y3VMlvt0As', u'artist': u'Earth, Wind & Fire', u'lyrics_id': 313137430, u'date': 1455543351, u'duration': 213, u'genre_id': 2, u'id': 439301642, u'owner_id': 2000060546}, u'type': u'audio'}, {u'audio': {u'title': u'The Ghetto (OST Intouchables)', u'url': u'http://cs4-1v4.vk-cdn.net/p1/0983a8f0c49791.mp3?extra=A-1h25Yr6x1pMbzXfHW8-skmFbxjZRU3LkGGw-O8a3DG6Umb8BYzH3wzHJOfNb6_s_B97m2lFWQTGZcT_l-jfrEhdKeqpQAuYkWEszUwJ8ug5O8', u'artist': u'George Benson', u'date': 1455543351, u'duration': 297, u'genre_id': 2, u'id': 440337290, u'owner_id': 2000060840}, u'type': u'audio'}, {u'audio': {u'title': u'Feeling Good', u'url': u'http://cs4-1v4.vk-cdn.net/p18/28be2fb201f442.mp3?extra=BfBxheVOhfoxLOkkz5CPk1NzmznRVeO8ECbVqmDjzqLqqS5_2rgoS-W90Jp3qUAiW9AcsYCQ1jXXFbnvIwh8wEMgGMSz9wwgptQFYng2zT69lHg', u'artist': u'Nina Simone', u'lyrics_id': 2967414, u'date': 1455543351, u'duration': 175, u'genre_id': 18, u'id': 440400961, u'owner_id': 2000060974}, u'type': u'audio'}, {u'audio': {u'title': u"L'origine Nascosta", u'url': u'http://cs536422.vk.me/u14223475/audios/04ec3806f7a2.mp3?extra=u8kNHGSIFfkvWUT4GloQ1a2NKVLvg514sFo7gNA0EiWsWo-P5TElQ33b95S0mrps9cSsvdYRBoq74VmOp_SB31r2Cx81YLKpW9Dx1roAzTaFh0I', u'artist': u'Ludovico Einaudi', u'lyrics_id': 178928350, u'date': 1455543351, u'duration': 193, u'genre_id': 2, u'id': 438816887, u'owner_id': 2000061611}, u'type': u'audio'}, {u'audio': {u'title': u'Fly', u'url': u'http://cs4-3v4.vk-cdn.net/p6/0deddd9881264a.mp3?extra=1dyM83HcvdqewkUWjLCDknnCGxxgwW_iic40RDldKpchcddyDkn6SO3Bl7pqr8T6BJuzBqd7aSfxuOL_1qUTCgxy1Rbs1ie9pO9fuQ6RarBoOk0', u'artist': u'Ludovico Einaudi', u'date': 1455543351, u'duration': 211, u'genre_id': 18, u'id': 440757710, u'owner_id': 2000061557}, u'type': u'audio'}, {u'audio': {u'title': u'Cache-Cache', u'url': u'http://cs4-4v4.vk-cdn.net/p24/1e3c8d00460573.mp3?extra=jKEM3QT31YUV1m_iR5-YxuTV5H8icjx8mYuVBiBlJPTiV6cp5A_bT15kQgRcwWxQHDoSts5UjocTPiDxSZSBPb_NYKf0orNAYBbvLfmWEmYJLyI', u'artist': u'Ludovico Einaudi', u'date': 1455543351, u'duration': 231, u'id': 438231307, u'owner_id': 2000059371}, u'type': u'audio'}], u'text': u'\u041c\u0443\u0437\u044b\u043a\u0430 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f - \u0438\u0437 \u0444\u0438\u043b\u044c\u043c\u0430 "1+1" ("\u041d\u0435\u043f\u0440\u0438\u043a\u0430\u0441\u0430\u0435\u043c\u044b\u0435")', u'post_type': u'post', u'date': 1455543350, u'owner_id': -34137285, u'id': 1742132, u'post_source': {u'type': u'vk'}, u'from_id': -34137285}], u'reposts': {u'count': 0, u'user_reposted': 0}, u'text': u'', u'comments': {u'count': 0, u'can_post': 1}, u'can_pin': 1, u'post_type': u'post', u'likes': {u'count': 1, u'can_publish': 0, u'can_like': 1, u'user_likes': 0}, u'can_delete': 1, u'date': 1455544321, u'from_id': 40227747, u'id': 2101, u'owner_id': 40227747}

Как я понимаю скрипт сработал без ошибок.
Но есть вопросы.
1. Где в коде идентефикатор группы от которой я хочу получать посты.
2. И где тут частота обновлений поста?


Пользователь решил продолжить мысль [time]22 Февраль 2016, 14:52:51[/time]:
Вот что на данный момент в коньках.

Пользователь решил продолжить мысль [time]22 Февраль 2016, 15:54:12[/time]:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
import vk_api


def main():
    """ Пример получения последнего сообщения со стены """

    login, password = '****@xakep.ru', '******'
    vk_session = vk_api.VkApi(login, password)

    try:
        vk_session.authorization()
    except vk_api.AuthorizationError as error_msg:
        print(error_msg)
        return

    vk = vk_session.get_api()

    """
        VkApi.method позволяет выполнять запросы к API. В этом примере
        используется метод wall.get (https://vk.com/dev/wall.get) с параметром
        count = 1, т.е. мы получаем один последний пост со стены текущего
        пользователя.
    """
   response = vk.wall.get(owner_id=489, count=1)  # Используем метод wall.get

    if response['items']:
        print(response['items'][0])

if __name__ == '__main__':
    main()
Думаю как то так.
 А по факту все так же, и выхлоп коньков тот же.
funk@funk-HP-Pavilion-g6-Notebook-PC:~/.scripts$ ./vk.py
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
{u'attachments': [{u'photo': {u'photo_130': u'http://cs633121.vk.me/v633121774/12847/G1OYz9f503Y.jpg', u'access_key': u'149bbe071d491bcedc', u'height': 1024, u'album_id': -7, u'text': u'https://planeta.ru/campaigns/soulcatcher', u'photo_75': u'http://cs633121.vk.me/v633121774/12846/slCBRwGa4js.jpg', u'photo_1280': u'http://cs633121.vk.me/v633121774/1284a/OPonXZhIZ7o.jpg', u'width': 1259, u'photo_604': u'http://cs633121.vk.me/v633121774/12848/5VTUwhkA73A.jpg', u'date': 1455398949, u'photo_807': u'http://cs633121.vk.me/v633121774/12849/FfjzP8dY0Os.jpg', u'id': 402615774, u'owner_id': 107677774}, u'type': u'photo'}], u'text': u'', u'comments': {u'count': 0, u'can_post': 0}, u'post_type': u'post', u'likes': {u'count': 0, u'can_publish': 0, u'can_like': 1, u'user_likes': 0}, u'reposts': {u'count': 0, u'user_reposted': 0}, u'date': 1455399415, u'from_id': 107677774, u'id': 3129, u'post_source': {u'type': u'vk'}, u'owner_id': 489}

В этот раз добавил ID сообщества.

Пользователь решил продолжить мысль [time]22 Февраль 2016, 18:58:29[/time]:
Как мне сказали, в этом отчете ошибка с апи вконтакте, опять то же и потму же, на cyberforum послали в техсаппорт вк

Пользователь решил продолжить мысль [time]22 Февраль 2016, 20:19:46[/time]:
Походу проблемка с библиотеками нашел форк библиотеки vk это vk requests. Но с построением скрипта разобраться теперь не могу. Опять запутался вхлам.

Пользователь решил продолжить мысль 22 Февраля 2016, 20:03:37:
При этом коде
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import vk_requests

api = vk_requests.create_api(app_id=*****, login='******@mail.ru', password='********')
api.users.get(user_ids=1)
[{'first_name': '********', 'last_name': '*******', 'id': ******** }]
response = api.execute.wall.get(domain='p6', count=1)

print response

 :idiot2: :idiot2: :idiot2:

Вот такой выхлоп

перед этим нюансы авторизации

Traceback (most recent call last):
  File "./vk.py", line 9, in <module>
    response = api.execute.wall.get(domain='p6', count=1)
  File "/usr/local/lib/python2.7/dist-packages/vk_requests-0.9.2-py2.7.egg/vk_requests/api.py", line 60, in __call__
    return self._api.make_request(request_obj=self)
  File "/usr/local/lib/python2.7/dist-packages/vk_requests-0.9.2-py2.7.egg/vk_requests/api.py", line 32, in make_request
    return self._session.make_request(request_obj)
  File "/usr/local/lib/python2.7/dist-packages/vk_requests-0.9.2-py2.7.egg/vk_requests/auth.py", line 440, in make_request
    raise vk_error
vk_requests.exceptions.VkAPIError: error_code=3,message='Unknown method passed: function not found, please check http://vk.com/editapp?id=5310880&section=functions',request_params={u'oauth': u'1', u'count': u'1', u'domain': u'p6', u'method': u'execute.wall.get'}
funk@funk-HP-Pavilion-g6-Notebook-PC:~/.scripts$

« Последнее редактирование: 22 Февраля 2016, 20:03:37 от funk2256 »
Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

Оффлайн funk2256

  • Автор темы
  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #5 : 26 Февраля 2016, 19:56:29 »
При вот таком коде вываливается ошибка.
#!/usr/bin/env python
# coding: utf8

from urllib2 import urlopen
import json

address = 'https://api.vk.com/method/wall.get?owner_id=******&access_token=********'
data = urlopen(address)
decoded_response = data.read().decode()
final_data = json.loads(decoded_response)
post = final_data['response'][1:]

print post

В чем суть и соль ошибки, как понимаю с кодировкой?

funk@funk-HP-Pavilion-g6-Notebook-PC:~$ ./vk.py
Traceback (most recent call last):
  File "./vk.py", line 9, in <module>
    decoded_response = data.read().decode()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 400: ordinal not in range(128)
Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #6 : 27 Февраля 2016, 14:49:10 »
Если вернуться к тому, с чего начали
vk.API
PACKAGE CONTENTS
vk.api
Что называется "найдите разницу".
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн funk2256

  • Автор темы
  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #7 : 27 Февраля 2016, 17:56:14 »
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import vk
api=vk.API(vk.Session())
post1 = api.wall.get(domain='pn6', count=2)

print(u'Пост #1: ', post1[2].get('text'))

Код работает, в терминале все ОК, но в коньках проблема с кодировкой.

Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #8 : 27 Февраля 2016, 23:26:58 »
Код: (python) [Выделить]
print('Пост #1: {}'.format(post1.get(2)))
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн funk2256

  • Автор темы
  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #9 : 28 Февраля 2016, 11:47:48 »
Все там уже нормально с кодировкой теперь, теперь вопрос как сделать что бы строка за экран не выбегала.


Пользователь решил продолжить мысль 28 Февраля 2016, 11:50:32:
conkyrc
######################
# - Conky settings - #
######################
update_interval 1
total_run_times 0
net_avg_samples 1
cpu_avg_samples 1

imlib_cache_size 0
double_buffer yes
no_buffers yes

format_human_readable

#####################
# - Text settings - #
#####################
use_xft yes
xftfont Droid Sans:size=8
override_utf8_locale yes
text_buffer_size 1024

own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

alignment top_right
gap_x 25
gap_y 40
minimum_size 182 0
maximum_width 260

default_bar_size 60

# Defining colors


#########################
# - Graphics settings - #
#########################
draw_shades no
default_color 3C3B37
color0 bebebe
color1 d3d3d3
color2 C0C0C0


# Loading lua script for drawning rings
#lua_load ./seamod_rings.lua
#lua_draw_hook_post main

## System information using conky capabilities

# Header with base system info
own_window_argb_value 0
own_window_colour 000000


TEXT
${voffset 20}${font Droid Sans:style=Bold:size=8}ДАТА $stippled_hr${font}
${voffset -12}${goto 28}${font Arial Black:size=38}${color2}${time %H}${color}${font}${voffset -28}${font Droid Sans:style=Bold:size=11}${color2}${time :%M}${time :%S}${color}${font}
${voffset -2}${goto 100}${font Droid Sans:style=Bold:size=8}${color2}${time %A}${color2}${font}
${goto 100}${time %d %b %Y}


##############
# - SYSTEM - #
##############
${color0}${voffset 6}${font OpenLogos:size=19}u${font}${color}${goto 32}${voffset -14}Kernel:  ${alignr}${color2}${kernel}${color}
${goto 32}Время работы: ${alignr}${color2}${uptime}${color}
$stippled_hr
# |--CPU
${offset 1}${color0}${font Poky:size=16}P${color}${font}${voffset -4}${goto 32}CPU 1: ${font Droid Sans:style=Bold:size=8}${color1}${cpu cpu1}%${color}${font}${alignr}${color2}${cpugraph cpu1 8,100 C6B9A6 C6B9A6}${color}
${offset 1}${color0}${font Poky:size=16}P${color}${font}${voffset -4}${goto 32}CPU 2: ${font Droid Sans:style=Bold:size=8}${color1}${cpu cpu2}%${color}${font} ${alignr}${color2}${cpugraph cpu2 8,100 C6B9A6 C6B9A6}${color}


# |--MEM
${color0}${font Poky:size=16}M${font}${color}${goto 32}${voffset -7}RAM: ${font Droid Sans:style=Bold:size=8}${color1}$memperc%${color}${font}
${offset 1}${voffset 2}${color0}${membar 4,18}${color}${goto 32}${voffset -2}F: ${font Droid Sans:style=Bold:size=8}${color2}${memeasyfree}${color}${font} U: ${font Droid Sans:style=Bold:size=8}${color2}${mem}${color}${font}

###############
# - NETWORK - #
###############
${voffset 4}${font Droid Sans:style=Bold:size=8}СЕТЬ $stippled_hr${font}
# |--WLAN0
${if_up wlan0}
${voffset -13}${color0}${font VariShapes Solid:size=14}q${font}${color}${goto 32}${voffset -6}Отправка: ${font Droid Sans:style=Bold:size=8}${color1}${upspeed wlan0}${color}${font} ${alignr}${color2}${upspeedgraph wlan0 8,50 C6B9A6 C6B9A6}${color}
${goto 32}Всего: ${font Droid Sans:style=Bold:size=8}${color2}${totalup wlan0}${color}${font}
${voffset -2}${color0}${font VariShapes Solid:size=14}Q${font}${color}${goto 32}${voffset -6}Приём: ${font Droid Sans:style=Bold:size=8}${color1}${downspeed wlan0}${color}${font} ${alignr}${color2}${downspeedgraph wlan0 8,50 C6B9A6 C6B9A6}${color}
${goto 32}Всего: ${font Droid Sans:style=Bold:size=8}${color2}${totaldown wlan0}${color}${font}
${voffset -2}${color0}${font Poky:size=14}Y${font}${color}${goto 32} ${voffset -2}Сигнал: ${font Droid Sans:style=Bold:size=8}${color1}${wireless_link_qual wlan0}%${color}${font} ${alignr}${color2}${wireless_link_bar 8,60 wlan0}${color}
${voffset 4}${color0}${font Poky:size=13}w${font}${color}${goto 32}${voffset -8}Локальный IP: ${alignr}${color2}${addr wlan0}${color}
${goto 32}Внешний IP: ${alignr}${color2}${execi 10 wget -O - -q icanhazip.com}${font}
# |--ETH0
${else}${if_up eth0}
${voffset -13}${color0}${font VariShapes Solid:size=14}q${font}${color}${goto 32}${voffset -6}Отправка: ${font Droid Sans:style=Bold:size=8}${color1}${upspeed eth0}${color}${font} ${alignr}${color2}${upspeedgraph eth0 8,60 C6B9A6 C6B9A6}${color}
${goto 32}Всего: ${font Droid Sans:style=Bold:size=8}${color2}${totalup eth0}${color}${font}
${voffset -2}${color0}${font VariShapes Solid:size=14}Q${font}${color}${goto 32}${voffset -6}Приём: ${font Droid Sans:style=Bold:size=8}${color1}${downspeed eth0}${color}${font} ${alignr}${color2}${downspeedgraph eth0 8,60 C6B9A6 C6B9A6}${color}
${goto 32}Всего: ${font Droid Sans:style=Bold:size=8}${color2}${totaldown eth0}${color}${font}
${voffset -2}${color0}${font Poky:size=13}w${font}${color}${goto 32}${voffset -4}Локальный IP: ${alignr}${color2}${addr eth0}${color}
#${goto 32}Внешний IP: ${execi 10 wget -O - -q icanhazip.com}${font}
# |--PPP0
${else}${if_up ppp0}
${voffset -13}${color0}${font VariShapes Solid:size=14}q${font}${color}${goto 32}${voffset -6}Отправка: ${font Droid Sans:style=Bold:size=8}${color1}${upspeed ppp0}${color}${font} ${alignr}${color2}${upspeedgraph ppp0 8,60 C6B9A6 C6B9A6}${color}
${goto 32}Всего: ${font Droid Sans:style=Bold:size=8}${color2}${totalup ppp0}${color}${font}
${voffset -2}${color0}${font VariShapes Solid:size=14}Q${font}${color}${goto 32}${voffset -6}Приём: ${font Droid Sans:style=Bold:size=8}${color1}${downspeed ppp0}${color}${font} ${alignr}${color2}${downspeedgraph ppp0 8,60 C6B9A6 C6B9A6}${color}
${goto 32}Всего: ${font Droid Sans:style=Bold:size=8}${color2}${totaldown ppp0}${color}${font}
${voffset -2}${color0}${font Poky:size=13}w${font}${color}${goto 32}${voffset -4}Локальный IP: ${alignr}${color2}${addr ppp0}${color}
${else}${voffset 4}${color0}${font PizzaDude Bullets:size=12}4${font}${color}${goto 32}Сеть недоступна${voffset 14}${endif}${endif}${endif}

#---POGODA---"
${voffset 0}${font Droid Sans:size=8:weight=bold}${color2}$alignc${execi 60 cat ~/.cache/pogoda/wheath.txt | sed '1!d'}${font}${color}
# В ..:..за окном:
${font Droid Sans:size=10:weight=bold}${color2}$alignc${execi 350 curl -s "http://wxdata.weather.com/wxdata/weather/local/RSXX1597?cc=*&dayf=10&unit=m" -o ~/.cache/pogoda/yahoo.xml}
# Скрипт bash подгрузка
${voffset 20}${execi 355 ~/.cache/pogoda/wheather.sh}
#Градусник значек
${voffset -50}${offset 0}${font Weather:size=50}y${color2}
#Вывод градусов через скрипт bash
${voffset -85}${offset 20}${font Droid Sans:size=20:weight=bold}${color1}${execi 60 cat ~/.cache/pogoda/wheath.txt | sed '3!d' | cut -b 25-29}С${font}${color}
#Ветер значек
${voffset -35}${offset 100}${color1}${font Weather:size=40}w
#Скорость ветра из скрипта bash
${voffset -60}${offset 130}${font Droid Sans:size=10:weight=bold}${color2}${execi 900 cat ~/.cache/pogoda/wheath.txt | sed '6!d'}
#Дальше идут строчки погоды текстовые
#Ощущается как:
${voffset 10}${font Droid Sans:size=8:weight=bold}${color2}${execi 900 cat ~/.cache/pogoda/wheath.txt | sed '4!d'}
#Направление ветра
${font Droid Sans:size=8:weight=bold}${color2}${execi 900 cat ~/.cache/pogoda/wheath.txt | sed '5!d'}
#Влажность
${font Droid Sans:size=8:weight=bold}${color2}${execi 900 cat ~/.cache/pogoda/wheath.txt | sed '7!d'}
#Давление
${font Droid Sans:size=8:weight=bold}${color2}${execi 900 cat ~/.cache/pogoda/wheath.txt | sed '9!d'}
#Видимость
${font Droid Sans:size=8:weight=bold}${color2}${execi 900 cat ~/.cache/pogoda/wheath.txt | sed '10!d'}

${font Droid Sans:size=8:weight=bold}${color2}Funk@xakep.ru
${execpi 300 python ~/.scripts/gmail.py}

${font Droid Sans:size=8:weight=bold}${color2}Funk2256@gmail.com
${execpi 300 python ~/.scripts/gmail2.py}
${font Droid Sans:size=8:weight=bold}${color2}
${execpi 300 python3 ~/.scripts/vk_script.py}{font}
« Последнее редактирование: 28 Февраля 2016, 11:50:32 от funk2256 »
Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #10 : 28 Февраля 2016, 13:05:10 »
так прямо в скрипте и обрежь до нужной длинны
Код: (python) [Выделить]
post1[2].get('text')[:20]
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн funk2256

  • Автор темы
  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
Re: Conky + vk api + python
« Ответ #11 : 28 Февраля 2016, 13:17:03 »
так прямо в скрипте и обрежь до7 нужной длинны
Код: (python) [Выделить]
post1[2].get('text')[:20]
Не вест пост отображается тогда.
Посоветовали textwrap.
Но как его правильно пристроить?

Так?

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import textwrap
import vk
api=vk.API(vk.Session())
post1 = api.wall.get(domain='pn6', count=2)
post2 = (u'Пост 1: ', post1[2].get('text'))
print(textwrap.fill(post2, width=40))

Пользователь решил продолжить мысль 28 Февраля 2016, 13:29:02:
Воооуууу!
Победа!
Всем спасибо!
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import textwrap
import vk
api=vk.API(vk.Session())
post1 = api.wall.get(domain='pn6', count=2)
print(textwrap.fill(post1[2].get('text'), 20))
« Последнее редактирование: 28 Февраля 2016, 13:29:02 от funk2256 »
Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

 

Страница сгенерирована за 0.045 секунд. Запросов: 25.