imcrazytwkr

Rutracker CSV split by subcategories

Dec 6th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | None | 0 0
  1. import os
  2. import csv
  3. import json
  4.  
  5. file = open('cats_subcats.json', 'r', encoding='UTF-8')
  6. categories = json.loads(file.read())
  7. file.close()
  8.  
  9. dirs = list(filter(os.path.isdir, os.listdir(os.getcwd())))
  10. if(not os.path.isdir('shares/')): os.mkdir('shares/')
  11.  
  12. for category in categories:
  13.     catpost = '/category_'+str(category['id'])+'.csv'
  14.     shares = []
  15.  
  16.     for dirt in dirs:
  17.         if(os.path.isfile(dirt+catpost)):
  18.             file = open(dirt+catpost, 'r', encoding='UTF-8')
  19.             shares.extend(list(csv.DictReader(file, fieldnames=('subcat_id', 'subcat_name', 'share_id', 'share_hash', 'share_name', 'share_size'), delimiter=';', quotechar='"')))
  20.             file.close()
  21.  
  22.     for subcat in category['subcats']:
  23.         subshares = {}
  24.         for share in shares[:]:
  25.             if(int(share['subcat_id']) == subcat['id']):
  26.                 subshares[share['share_id']] = {
  27.                     'hash': share['share_hash'],
  28.                     'name': share['share_name'],
  29.                     'size': int(share['share_size'])
  30.                 }
  31.                 shares.remove(share)
  32.  
  33.         output = []
  34.         for key in subshares: output.append({
  35.             'id': int(key),
  36.             'hash': subshares[key]['hash'],
  37.             'name': subshares[key]['name'],
  38.             'size': subshares[key]['size']
  39.         })
  40.  
  41.         outname = 'shares/cat_'+str(category['id'])+'_subcat_'+str(subcat['id'])+'.json'
  42.         if(os.path.isfile(outname)): os.remove(outname)
  43.         outfile = open(outname, 'w', encoding='UTF-8')
  44.         outfile.write(json.dumps(output, indent=4, sort_keys=True))
  45.         outfile.close()
Advertisement
Add Comment
Please, Sign In to add comment