Макрос "Уведомления о новых сообщениях на форуме"

Автор ТрындецЪ, 22.01.18, 09:22:51

« предыдущая - следующая »

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

ТрындецЪ

Посвящается всем активным пользователям этого форума.
Надоело мне однажды вручную обновлять  страницу http://forum.ascon.ru/index.php?action=recent, и решил я как-то упростить себе задачу, чтобы всегда быть в курсе появления новых сообщений и не отрываться от работы в КОМПАСе.
Макрос отслеживает появление новых сообщений на этом форуме и информирует о них всплывающим сообщением в КОМПАС-3D.
Работает только с Python v2.x и при запущенном КОМПАС-3D.
Чтобы прервать выполнение программы, нужно в диспетчере задач завершить процесс pythonw.exe
+ Благодарностей: 3

Умка

PythonWin 2.6.2 (r262:71600, Apr 21 2009, 15:05:37) [MSC v.1500 32 bit (Intel)] on win32.
Portions Copyright 1994-2008 Mark Hammond - see 'Help/About PythonWin' for further copyright information.
Traceback (most recent call last):
  File "C:\Program Files\Python26\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 312, in RunScript
    exec codeObject in __main__.__dict__
  File "C:\Program Files\ASCON\Уведомление.pyw", line 36, in <module>
    response = urllib2.urlopen('http://forum.ascon.ru/index.php?action=recent';)
  File "C:\Program Files\Python26\lib\urllib2.py", line 124, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Program Files\Python26\lib\urllib2.py", line 389, in open
    response = meth(req, response)
  File "C:\Program Files\Python26\lib\urllib2.py", line 502, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Program Files\Python26\lib\urllib2.py", line 427, in error
    return self._call_chain(*args)
  File "C:\Program Files\Python26\lib\urllib2.py", line 361, in _call_chain
    result = func(*args)
  File "C:\Program Files\Python26\lib\urllib2.py", line 510, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 407: Proxy Authentication Required ( Ð"ля выполнения запроса компоненÑ,у Forefront TMG Ñ,ребуеÑ,ся авÑ,оризация. Ð"осÑ,уп к Ñ,,ильÑ,ру веб-прокси запрещен.  )
>>>
Kv13, WXP

ТрындецЪ

Цитата: Умка от 22.01.18, 09:36:11
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 407: Proxy Authentication Required...

Proxy Authentication Required - Требуется прокси-аутентификация.
Может у Вас выход в сеть с логином/паролем прокси?

Умка


tramp_m

Берём видеокарту с двумя выходами, для двух раздельных экранов....
Или берём экран для двух страниц и делаем мульти экран и вперёд...
Прошу прощения если что не так...

Вират Лакх

23.01.18, 04:49:17 #5 Последнее редактирование: 23.01.18, 07:34:17 от Вират Лакх
Предлагаю сделать макрос независимым от компаса. Поиск что-то выдает на тему отображения балунов типа https://gist.github.com/BoppreH/4000505, но надо разбираться...

UPD. например, вот рабочий код (под себя почистил):
from win32gui import *
import win32con, sys, os, time

class WindowsBalloonTip:
   def __init__(self, msg, title):
      message_map = {win32con.WM_DESTROY: self.OnDestroy}
      wc = WNDCLASS()
      hinst = wc.hInstance = GetModuleHandle(None)
      wc.lpszClassName = "PythonTaskbar"
      wc.lpfnWndProc = message_map
      classAtom = RegisterClass(wc)
      style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
      self.hwnd = CreateWindow( classAtom, "Taskbar", style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hinst, None)
      UpdateWindow(self.hwnd)
      iconPathName = os.path.abspath(os.path.join(sys.path[0], "balloontip.ico"))
      icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
      try:
         hicon = LoadImage(hinst, iconPathName, win32con.IMAGE_ICON, 0, 0, icon_flags)
      except:
         hicon = LoadIcon(0, win32con.IDI_APPLICATION)
      flags = NIF_ICON | NIF_MESSAGE | NIF_TIP
      nid = (self.hwnd, 0, flags, win32con.WM_USER+20, hicon, "tooltip")
      Shell_NotifyIcon(NIM_ADD, nid)
      Shell_NotifyIcon(NIM_MODIFY, (self.hwnd, 0, NIF_INFO, win32con.WM_USER+20, hicon, "Balloon tooltip", msg, 200, title))
      time.sleep(4)
      DestroyWindow(self.hwnd)
   def OnDestroy(self, hwnd, title, wparam, lparam):
      nid = (self.hwnd, 0)
      Shell_NotifyIcon(NIM_DELETE, nid)
      PostQuitMessage(0)

WindowsBalloonTip('msg','title')

UPD2. Вот версия макроса без привязки к компасу. См. вложение.
+ Благодарностей: 1

ТрындецЪ

Версия 0.4 (с уведомлениями через КОМПАС-3D)
Из за частых "вылетов" добавлено игнорирование неповторяющихся ошибок.
Добавлено окно с выводом текста ошибки, приведшей к закрытию программы.

dimak222

Цитата: Вират Лакх от 23.01.18, 04:49:17Предлагаю сделать макрос независимым от компаса.
Наткнулся на этот макрос, очень понравилась идея с независимыми уведомлениями, доработал, при нажатии на уведомление открывается форум с сообщением.

Уведомление с форума ASCON v0.5.

Рядом с программой/макросом создаётся txt файл, в котором можно задать параметры:
my_topics - перечисление интересующих тем или вывод новых сообщений со всех тем;
update_msg - частота обновления сообщений;
error_time - время ожидания между ошибками;

Один из пунктов которые не смог реализовать, связь кнопки в уведомлении с выходом системы.

За любую доработку/отзыв/предложение по усовершенствованию буду очень признателен.
+ Благодарностей: 1

dimak222

Уведомление с форума ASCON v0.6.

После доп. испытаний доработал приложение:
1. Добавил чёрный список (blacklist_of_topics) (не будет выдаваться сообщение по заданной теме, имеет приоритет над my_topics);
2. Расширил возможность игнорировать тему, если она не вписанная (my_topics = "" или my_topics = "False");
3. Исправил неправильное считывание темы, если она одна и была записана без ";".

P.S. Возможно, первое сообщение в только что созданной теме не появляется, поймать эту ошибку сложно (темы с нуля создаются не часто).

p3452

Неужели Вы, при включенном интернете, выполняете плановые (серьезные) работы в Компас?

dimak222

Сначала было желание разобраться в работе уведомлений, ну и как итог доработал приложение, всё равно захожу на форум.

Ограничений на интернет у нас нет. И если весь в работе меня так просто не отвлечь.

Петрович-47

p3452
у Вас запрещено политикой предприятия работать в К при включенном интернете?

p3452

Цитата: Петрович-47 от 21.09.22, 14:17:56у Вас запрещено политикой предприятия работать в К при включенном интернете?
Понятие - "разумная целесообразность", Вам ведомо?

Петрович-47

Не вполне вижу применения "разумной целесообразности" в данном случае
для чего отключать интернет при работе с К? с её точки зрения?
Для экономии трафика? так К трафик не расходует...
Да к тому же электронная почта сыпется постоянно, это что для проверки почты интернет каждый раз включать?

p3452

Цитата: Петрович-47 от 21.09.22, 16:55:36Не вполне вижу применения "разумной целесообразности" в данном случае
для чего отключать интернет при работе с К? с её точки зрения?
Ну, если "работы" - уровня "студенческие", то как-бы и НЕ "для чего"...
Надеюсь Вы знаете, что "снять" информацию с компьютера можно, даже при полном отсутствии интернета (по обычной электро-сети), а уж что можно сделать при включенном интернете...
Цитата: Петрович-47 от 21.09.22, 16:55:36К трафик не расходует...
- Вы v21, пробовали? Функции "betta - тестеров" возложили на пользователей, со всеми вытекающими, в том числе и по "расходу трафика".
Цитата: Петрович-47 от 21.09.22, 16:55:36Да к тому же электронная почта сыпется постоянно
Почтовый сервер должен быть и связь с ним по локальной сети...


dimak222

Уведомление с форума ASCON v0.7.1

Поправил ошибки:
1. Не выводилось уведомление в только что созданных темах (из-за этого ссылки на темы были неправильные).
2. Не выводилось уведомление если в теме заголовка есть " (теперь, в заголовке уведомления, " меняется на '').

Что нового:
1. Добавил иконку 🆕 в только что созданных темах.

В планах:
1. Кнопка завершить работу в уведомлении. (Но, на текущий момент навыка это сделать не хватает, кнопку могу, а действие закрытия - нет).

P.S. При нажатии на уведомление открывается браузер с сообщением из уведомления=)
+ Благодарностей: 1

dimak222

Уведомление с форума ASCON v0.8.0

Исправил ошибки:
1. Работу иконки.

Что нового:
1. Добавил опцию "only_new_topics" (показывать только уведомления, только что созданных тем).
2. Добавил опцию "icon_in_notifications" (показывать иконку в уведомлении).

IgorT

Пытаюсь поставит программу.

Получаю вот так:
2022-11-22_11-44-03.png


dimak222

Цитата: IgorT от 22.11.22, 11:47:22Пытаюсь поставит программу.

Да, точно, планировал откатиться на старый python 3.8.Х, что бы на 7-ке работало...
Сейчас попробую исправить.