Skip to content

Instantly share code, notes, and snippets.

View rakanalh's full-sized avatar

Rakan Al-Huneiti rakanalh

  • Open Source
  • Jordan
  • 04:54 (UTC +03:00)
  • X @rakanalh
View GitHub Profile
@rakanalh
rakanalh / gist:8314423
Created January 8, 2014 10:01
Using Django-Dynamic-Scraper to extract multiple values to ManyToMany field
"""
What you have to do to use this is extending BaseItem rather than extending DjangoItem because DjangoItem looks for _meta.fields and ignores _meta.many_to_many.
This will handle the ManyToMany fields in your model. So you have to scrape the data using DDS and return an Item that contains the ManyToMany field but as a list [].
The BaseItem class will basically call a function in your Item class named save_%s_values for each ManyToMany field. So if your ManyToMany field is called
photos, you'll have to have a method called save_photos_values which accepts the model, the model_field and the list of values. Example:
def save_photos_values(self, model, model_field, values):
for value in values:
image_filename = settings.IMAGES_STORE + value['path']
image = create_and_save_image_from_file(model.title, image_filename)
model_field.add(image)
# Hacky script for downloading videos from PyVideo and converting them to m4v
# format so they can be synced onto your apple device. Useful if you
# want to see everything that happened at PyCon while commuting.
# This version supports the new PyVideo.org website
#
# Requirements:
# * pip install requests BeautifulSoup
# * youtube-dl (from https://github.com/rg3/youtube-dl/) - you can execute
# pip install youtube-dl to install it
# This was the only YouTube downloader I found that worked. It doesn't
@rakanalh
rakanalh / pycentos3.py
Created October 27, 2014 12:24
Install Python 3 on CentOS
#!/usr/bin/env python
"""
This script compiles and installs Python3 on your CentOS server.
Built based on the steps described by Digital Ocean (https://www.digitalocean.com/community/tutorials/how-to-set-up-python-2-7-6-and-3-3-3-on-centos-6-4)
"""
import os
import subprocess
@rakanalh
rakanalh / fix_permissions.py
Created March 8, 2016 09:42 — forked from magopian/fix_permissions.py
Django admin command to "fix permissions" (create them properly for proxy models). This is needed because of the following bug in Django (not fixed as of 1.6): https://code.djangoproject.com/ticket/11154
# -*- coding: utf-8 -*-
"""Add permissions for proxy model.
This is needed because of the bug https://code.djangoproject.com/ticket/11154
in Django (as of 1.6, it's not fixed).
When a permission is created for a proxy model, it actually creates if for it's
base model app_label (eg: for "article" instead of "about", for the About proxy
model).
@rakanalh
rakanalh / git-branch-perspective.el
Last active October 30, 2016 02:52
Emacs - Git branch based perspectives
(defun close-all-buffers ()
(interactive)
(mapc 'kill-buffer (buffer-list)))
(defun persp/get-root (branch-name)
(let ((current-project (projectile-project-name)))
(message current-project)
(message branch-name)
(if (and (not current-project) (not branch-name))
(error "Could not find persp root"))
#########################################
unmapAll # Use Emacs-style bindings only.
#########################################
# Modifier Keys w/ Emacs Terminology:
# `<c-*>` = ⌃ Control Key; i.e. `C-*`.
# `<a-*>` = ⌥ Meta Key (Alt/Option); i.e. `M-*`.
@rakanalh
rakanalh / keybase.md
Last active July 17, 2018 13:26
keybase.md

Keybase proof

I hereby claim:

  • I am rakanalh on github.
  • I am rakanalh (https://keybase.io/rakanalh) on keybase.
  • I have a public key ASCHbbaYDO4B663F3SbierImAoufooIdWudvhmKxMCr5jQo

To claim this, I am signing this object:

@rakanalh
rakanalh / negative_balance.py
Created November 7, 2018 14:35
Negative balance
from eth_utils import to_canonical_address
from raiden.storage import serialize, sqlite
from raiden.storage.wal import WriteAheadLog
from raiden.transfer import channel, node, views
from raiden.transfer.architecture import StateManager
serializer = serialize.JSONSerializer()
@rakanalh
rakanalh / exception.log
Created November 27, 2018 11:34
Matrix transport exception
2018-11-27 11:32:41 [debug ] JSONRPCClient created [raiden.network.rpc.client] available_nonce=3 client=Parity-Ethereum//v2.1.6-stable-491f17f149-20181114/x86_64-linux-gnu/rustc1.30.1 node=9734bc77
Raiden is running in production mode
You are connected to the '17' network and the DB path is: /home/rakan/.raiden/node_9734bc77/netid_17/network_7098b039/v14_log.db
2018-11-27 11:32:41 [debug ] Fetching available matrix servers [raiden.ui.app] available_servers=['https://raidentransport.exchangeunion.com', 'https://persephone.raidentransport.digitalvirtues.com', 'https://raidentransport.ki-decentralized.com', 'https://raidentransport.mycryptoapi.com']
2018-11-27 11:32:41 [debug ] Restoring from snapshot [raiden.storage.wal] from_state_change_id=1000 to_state_change_id=latest
2018-11-27 11:32:41 [debug ] Replaying state changes [raiden.storage.wal] num_state_changes=61
2018-11-27 11:32:41 [debug ] Restored state from WAL [raiden.raiden_service] last_restored_block=1374
@rakanalh
rakanalh / failure.log
Last active November 27, 2018 13:21
Matrix unable to join discovery room
2018-11-27 13:18:55 [debug ] JSONRPCClient created [raiden.network.rpc.client] available_nonce=0 client=Parity-Ethereum//v2.1.6-stable-491f17f149-20181114/x86_64-linux-gnu/rustc1.30.1 node=7dfc0dd6
Raiden is running in production mode
You are connected to the '17' network and the DB path is: /home/rakan/development/raiden/local/production/0x00a329c0648769A73afAc7F9381E08FB43dBEA72/data/node_7dfc0dd6/netid_17/network_acd2ed44/v14_log.db
2018-11-27 13:18:55 [debug ] Fetching available matrix servers [raiden.ui.app] available_servers=['https://raidentransport.exchangeunion.com', 'https://persephone.raidentransport.digitalvirtues.com', 'https://raidentransport.ki-decentralized.com', 'https://raidentransport.mycryptoapi.com']
2018-11-27 13:18:59 [debug ] Matrix homeserver RTT times [raiden.network.transport.matrix] rtt_times=[('https://raidentransport.ki-decentralized.com', 0.03457166666666667), ('https://persephone.raidentransport.digitalvirtues.com', 0.03535733333333333), ('https://raidentr