示例#1
0
 def __init__(self, event=None):
     self.event = event
     self._session = Session()
     try:
         self._session.headers.update({"Authorization": f"token {get_token()}"})
     except NoGitHubTokenException:
         self._session.auth = get_credentials()
     self._session.headers.update({"User-Agent": APP_NAME})
     if event is not None:
         self.issue_url = event['pull_request']['issue_url']
示例#2
0
def login(username=None,password=None):
    if username is None:
        username, password = config.get_credentials()
        if username is None:
            username, password = utils.ask_credentials()

    br = mechanize.Browser(factory=mechanize.RobustFactory())
    br.set_handle_robots(False)
    br.addheaders.append( ['Accept-Encoding','gzip'] )

    try:
        r=br.open(urls.BASE_URL)
        ungzip_response(r,br)

        found=False
        for form in br.forms():
            if form.attrs['id'] == 'login-form':
                br.form = form
                found=True
                break

        if found == False:
            click.echo("Couldn't find login form")
            return None

        br['login_user'] = username
        br['password'] = password

        r=br.submit()
        ungzip_response(r,br)

        for link in br.links():
            if 'My profile' in link.text:
                click.echo('Login Success')
                return br

        click.echo('Wrong Username/Password. Try Again')
        return None
    except mechanize.URLError:
        click.echo('Error in connecting to internet. Please check your internet connection')
        return None
示例#3
0
    def submit(self):
        username, password = config.get_credentials()
        if username is None:
            username, password = utils.ask_credentials()
        with open(self.filename.name, 'r') as codefile:
            solution = codefile.read()
        br = mechanize.Browser()
        br.set_handle_robots(False)
        #s = cSpinner()
        #s.start()

        br.open('http://www.spoj.com/submit/')
        br.select_form(name='login')
        br['login_user'] = username
        br['password'] = password
        br.submit()
        authorised = False
        for link in br.links():
            if link.text == 'my account':
                authorised = True
        if not authorised:
            return False, 'Invalid username/password'

        br.select_form(nr=0)
        br['problemcode'] = self.problem
        br['file'] = solution
        br['lang'] = [self.language]
        br.submit()
        response = br.response().read()
        wrong_code = re.search(r'wrong\s+problem', response, re.IGNORECASE)
        if wrong_code:
            return False, 'Wrong problem code'
        submissionId = re.search(r'name="newSubmissionId" value="(\d+)"',
                                 response, re.IGNORECASE)
        if submissionId:
            submissionId = submissionId.group(1)
            self.submissionId = submissionId
            return True, 'Problem submitted. Fetching Status!'
        else:
            return False, 'Not submitted, some error occurred'
def make_chart(_):
    """
        Calls a remote service to make a chart.

        @param data: TODO
        @type data: TODO
    """
    API_KEY = config.get_credentials().get('charturl', 'api_key')

    request_data = {
        'template': 'assertion-count-timeseries',
        'options': {
            'data': {
                'columns': [
                    ["x",
                     "2013-01-01",
                     "2013-01-02",
                     "2013-01-03",
                     "2013-01-04",
                     "2013-01-05",
                     "2013-01-06"],
                    ['data1', 1, 2, 3, 4],
                    ['data2', 5, 6, 7, 8],
                ]
            }
        }
    }

    request_url = CHART_REQUEST_URL % API_KEY
    print 'making call to %s with %s' % (request_url, request_data)
    res = requests.post(request_url, json=request_data)
    if not res.ok:
        print 'request failed'
        print res.content

    chart_url = res.json()['short_url']
    print 'chart_url: ', chart_url
示例#5
0
import json
from requests import Session

from config import get_credentials, APP_NAME

session = Session()
session.auth = get_credentials()
session.headers.update({"User-Agent": APP_NAME})


class PullRequest(object):
    def __init__(self, event=None):
        self.event = event
        if event is not None:
            self.issue_url = event['pull_request']['issue_url']

    @property
    def labels(self):
        return self.request_labels_json()

    def request_labels_json(self):
        r = session.get(self.label_url)
        if r.status_code >= 300:
            print("Got a non-2xx status: ", r.url, r.headers, r.content)
        return r.json()

    @property
    def label_url(self):
        return "{}/labels".format(self.issue_url)

    def compute_and_post_status(self, required_any, required_all, banned):
示例#6
0
    def get_answer(self, key):
        if key in answers.keys():
            r = random.randint(0, len(answers[key]) - 1)
            return answers[key][r]
        else:
            r = random.randint(0, len(answers['unknown_command']) - 1)
            return answers['unknown_command'][r]


def login():
    try:
        print("Logging in...")
        client = Martzi(username, password, logging_level=30)
        print("Logged in successfully!")
        print("Listening...")
        client.listen()
    except Exception as e:
        print("Couldn't login to facebook!")
        print(e)
        exit()


VERSION = 0.2
print('Welcome to Matrzi v' + str(VERSION))

(username, password) = config.get_credentials()
subreddit = config.parse_file('subreddits.txt')
answers = config.parse_file('answers.txt')
login()
示例#7
0
import json
from requests import Session

from config import get_credentials, APP_NAME

session = Session()
token = get_credentials()
session.headers.update({
    "User-Agent": APP_NAME,
    "Authorization": f"token {token}"
})


class PullRequest(object):
    def __init__(self, event=None):
        self.event = event
        if event is not None:
            self.issue_url = event['pull_request']['issue_url']

    @property
    def labels(self):
        return self.request_labels_json()

    def request_labels_json(self):
        r = session.get(self.label_url)
        if r.status_code >= 300:
            print("Got a non-2xx status: ", r.url, r.headers, r.content)
        return r.json()

    @property
    def label_url(self):