def queue_update(): json_queue = QueueManager.get_json_queue() logging.info("sending notifications") subs = memcache.get(SUBSCRIBERS_KEY) msg = json.dumps({'type': 'queue', 'data': json_queue, 'active_tas': LabTA.update_active_tas()}) for s in subs: channel.send_message(s, msg)
def queue_update(): json_queue = QueueManager.get_json_queue() logging.info("sending notifications") subs = memcache.get(SUBSCRIBERS_KEY) msg = json.dumps({ 'type': 'queue', 'data': json_queue, 'active_tas': LabTA.update_active_tas() }) for s in subs: channel.send_message(s, msg)
def get(self): user = users.get_current_user() json_queue = QueueManager.get_json_queue() token = channel.create_channel(user.email()) if is_ta(user.email()): logging.info("{} is a TA".format(user.email())) template_values = {'logout_url': users.create_logout_url('/'), 'schedule_url': "http://labta.cs.princeton.edu", 'is_ta': is_ta(user.email()), 'curr_user': user.email(), 'token': token, 'queue': base64.b64encode(json_queue), 'active_tas': LabTA.update_active_tas()} template = JINJA_ENVIRONMENT.get_template('templates/HelpQueue.html') self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() json_queue = QueueManager.get_json_queue() token = channel.create_channel(user.email()) if is_ta(user.email()): logging.info("{} is a TA".format(user.email())) template_values = { 'logout_url': users.create_logout_url('/'), 'schedule_url': "http://labta.cs.princeton.edu/schedule.html", 'is_ta': is_ta(user.email()), 'curr_user': user.email(), 'token': token, 'queue': base64.b64encode(json_queue), 'active_tas': LabTA.update_active_tas() } template = JINJA_ENVIRONMENT.get_template('templates/HelpQueue.html') self.response.write(template.render(template_values))
def init(hwr, hwdir): """ Initializes the HardwareRepository with XML files read from hwdir. The hwr module must be imported at the very beginning of the application start-up to function correctly. This method can however be called later, so that initialization can be done when one wishes. :param hwr: HardwareRepository module :param str hwdir: Path to hardware objects :return: None """ global HWR try: hwr.init_hardware_repository(path.abspath(path.expanduser(hwdir))) _hwr = hwr.getHardwareRepository() _hwr.connect() HWR = _hwr except Exception: logging.getLogger("HWR").exception("") try: global beamline, actions, plotting beamline = hwr.beamline qm = QueueManager.QueueManager("MXCuBE3") from mxcube3.core import qutils qutils.init_signals(hwr.beamline.queue_model) except Exception: msg = "Could not initialize one or several hardware objects, " msg += "stopped at first error ! \n" msg += "Make sure That all devices servers are running \n" msg += "Make sure that the detector software is running \n" exit_with_error(msg)
def parse_an_article(link_queue=QueueManager.list_init(), link_visited=isVisited.init()): target_url = link_queue.get() if target_url in link_visited or target_url in stoplist: return link_queue, link_visited # html = open('test.html', encoding='utf8').read() print(target_url) html = load_html(target_url) link_visited[target_url] = True try: soup = BeautifulSoup(html, 'html.parser') except: return link_queue, link_visited # get date date = None try: time_stamp = int(soup.find(id='news-time')['data-val']) / 1000 date = datetime.datetime.fromtimestamp(time_stamp) # time is scaled at seconds except: try: raw_date = soup.find(id='pubtime_baidu')['content'] date = datetime.datetime.strptime(raw_date, "%Y-%m-%dT%H:%M:%S+08:00") except: try: raw_date = soup.find(id='pubtime_baidu').string date = datetime.datetime.strptime(raw_date, "%Y-%m-%d %H:%M:%S") except: pass byte_title = soup.title.string # now parsing the body part byte_content = "" try: article = soup.find('article') for string in article.strings: byte_content += string # byte_content = byte_content.encode('utf8') except: article = soup.find(itemprop='articleBody') try: descendants = article.descendants for tag in article.descendants: if tag.name == 'p': # byte_content += tag.string try: byte_content += tag.string except: try: byte_content += tag.br.string except: pass byte_content += '\n' except: pass # parsing finished for raw_link in soup.find_all('a'): filtered_addtolist(raw_link.get('href'), link_queue, link_visited) page = Webpage(target_url, byte_title, date, byte_content) date_filename = space_to_dash(str(date)) database.save(date_filename, byte_content) print(date_filename) return link_queue, link_visited
pass # parsing finished for raw_link in soup.find_all('a'): filtered_addtolist(raw_link.get('href'), link_queue, link_visited) page = Webpage(target_url, byte_title, date, byte_content) date_filename = space_to_dash(str(date)) database.save(date_filename, byte_content) print(date_filename) return link_queue, link_visited if __name__ == '__main__': while True: link_queue = QueueManager.list_init() link_visited = isVisited.init() for iter_count in tqdm(range(MAX_ITERATION)): link_queue, link_visited\ = parse_an_article(link_queue, link_visited) print("now start saving") QueueManager.list_save(link_queue) isVisited.save(link_visited) print("saving complete") while True: user_input = input("continue?\n(y/n)") if user_input == 'y': break if user_input == 'n': exit(0)
import json import logging import signals import queue_model_objects_v1 as qmo import queue_entry as qe import QueueManager from flask import Response, jsonify, request, session from mxcube3 import app as mxcube from mxcube3 import socketio from . import qutils qm = QueueManager.QueueManager('Mxcube3') @mxcube.route("/mxcube/api/v0.1/queue/start", methods=['PUT']) def queue_start(): """ Start execution of the queue. :returns: Respons object, status code set to: 200: On success 409: Queue could not be started """ logging.getLogger('HWR').info('[QUEUE] Queue going to start') try: mxcube.queue.queue_hwobj.set_pause(False) mxcube.queue.queue_hwobj.execute() except Exception as ex: