lots of new files
This commit is contained in:
		
							
								
								
									
										9
									
								
								eric/Cakefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								eric/Cakefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | spawn = (require 'child_process').spawn | ||||||
|  |  | ||||||
|  | to_stdio = (emitter) -> | ||||||
|  |     emitter.stdout.on 'data', (data) -> process.stdout.write data | ||||||
|  |     emitter.stderr.on 'data', (data) -> process.stderr.write data | ||||||
|  |     emitter | ||||||
|  |  | ||||||
|  | task 'build', 'Build game file', (options) -> | ||||||
|  |     to_stdio spawn 'coffee', ['--compile', 'eric.coffee'] | ||||||
							
								
								
									
										43
									
								
								eric/eric.coffee
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								eric/eric.coffee
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | |||||||
|  | dx = 20 | ||||||
|  | [nx, ny] = [30, 20] | ||||||
|  | canvas = document.getElementById 'canvas' | ||||||
|  |  | ||||||
|  | canvas.width = nx*dx | ||||||
|  | canvas.height = ny*dx | ||||||
|  |  | ||||||
|  | state = [] | ||||||
|  | for i in [1..ny] by 1 | ||||||
|  |   line = [] | ||||||
|  |   line.push 0 for j in [1..nx] by 1 | ||||||
|  |   state.push line | ||||||
|  |  | ||||||
|  | ctx = canvas.getContext '2d' | ||||||
|  |  | ||||||
|  | color = [ | ||||||
|  |   'rgb(255, 255, 255)', | ||||||
|  |   'rgb(204, 255, 255)', | ||||||
|  |   'rgb(153, 255, 255)', | ||||||
|  |   'rgb(102, 255, 255)', | ||||||
|  |   'rgb(51, 255, 255)', | ||||||
|  |   'rgb(0, 255, 255)', | ||||||
|  | ] | ||||||
|  |  | ||||||
|  | redraw = () => | ||||||
|  |   for i in [0..ny-1] by 1 | ||||||
|  |     for j in [0..nx-1] by 1 | ||||||
|  |       ctx.fillStyle = color[state[i][j]] | ||||||
|  |       ctx.fillRect j*dx, i*dx, dx, dx | ||||||
|  |  | ||||||
|  | canvas.onmousemove = (e) => | ||||||
|  |   if (e.pageX || e.pageY) | ||||||
|  |     [x, y] = [e.pageX, e.pageY] | ||||||
|  |   else | ||||||
|  |     x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft | ||||||
|  |     y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop | ||||||
|  |   x -= canvas.offsetLeft | ||||||
|  |   y -= canvas.offsetTop | ||||||
|  |   [i, j] = [Math.floor(y/dx), Math.floor(x/dx)] | ||||||
|  |   state[i][j] += 1 | ||||||
|  |   state[i][j] %= 6 | ||||||
|  |   redraw() | ||||||
|  |  | ||||||
							
								
								
									
										66
									
								
								eric/eric.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								eric/eric.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | |||||||
|  | // Generated by CoffeeScript 1.6.2 | ||||||
|  | (function() { | ||||||
|  |   var canvas, color, ctx, dx, i, j, line, nx, ny, redraw, state, _i, _j, _ref, | ||||||
|  |     _this = this; | ||||||
|  |  | ||||||
|  |   dx = 20; | ||||||
|  |  | ||||||
|  |   _ref = [52, 7], nx = _ref[0], ny = _ref[1]; | ||||||
|  |  | ||||||
|  |   canvas = document.getElementById('canvas'); | ||||||
|  |  | ||||||
|  |   canvas.width = nx * dx; | ||||||
|  |  | ||||||
|  |   canvas.height = ny * dx; | ||||||
|  |  | ||||||
|  |   state = []; | ||||||
|  |  | ||||||
|  |   for (i = _i = 1; _i <= ny; i = _i += 1) { | ||||||
|  |     line = []; | ||||||
|  |     for (j = _j = 1; _j <= nx; j = _j += 1) { | ||||||
|  |       line.push(0); | ||||||
|  |     } | ||||||
|  |     state.push(line); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   ctx = canvas.getContext('2d'); | ||||||
|  |  | ||||||
|  |   color = ['rgb(255, 255, 255)', 'rgb(204, 255, 255)', 'rgb(153, 255, 255)', 'rgb(102, 255, 255)', 'rgb(51, 255, 255)', 'rgb(0, 255, 255)']; | ||||||
|  |  | ||||||
|  |   redraw = function() { | ||||||
|  |     var _k, _ref1, _results; | ||||||
|  |  | ||||||
|  |     _results = []; | ||||||
|  |     for (i = _k = 0, _ref1 = ny - 1; _k <= _ref1; i = _k += 1) { | ||||||
|  |       _results.push((function() { | ||||||
|  |         var _l, _ref2, _results1; | ||||||
|  |  | ||||||
|  |         _results1 = []; | ||||||
|  |         for (j = _l = 0, _ref2 = nx - 1; _l <= _ref2; j = _l += 1) { | ||||||
|  |           ctx.fillStyle = color[state[i][j]]; | ||||||
|  |           _results1.push(ctx.fillRect(j * dx, i * dx, dx, dx)); | ||||||
|  |         } | ||||||
|  |         return _results1; | ||||||
|  |       })()); | ||||||
|  |     } | ||||||
|  |     return _results; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   canvas.onmousemove = function(e) { | ||||||
|  |     var x, y, _ref1, _ref2; | ||||||
|  |  | ||||||
|  |     if (e.pageX || e.pageY) { | ||||||
|  |       _ref1 = [e.pageX, e.pageY], x = _ref1[0], y = _ref1[1]; | ||||||
|  |     } else { | ||||||
|  |       x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; | ||||||
|  |       y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; | ||||||
|  |     } | ||||||
|  |     x -= canvas.offsetLeft; | ||||||
|  |     y -= canvas.offsetTop; | ||||||
|  |     _ref2 = [Math.floor(y / dx), Math.floor(x / dx)], i = _ref2[0], j = _ref2[1]; | ||||||
|  |     state[i][j] += 1; | ||||||
|  |     state[i][j] %= 6; | ||||||
|  |     return redraw(); | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  | }).call(this); | ||||||
							
								
								
									
										14
									
								
								eric/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								eric/index.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | <html> | ||||||
|  |     <head> | ||||||
|  |         <style type="text/css"> | ||||||
|  |         body{ | ||||||
|  |         margin: 0; | ||||||
|  |         padding: 0 | ||||||
|  |         } | ||||||
|  |         </style> | ||||||
|  |     </head> | ||||||
|  |     <body> | ||||||
|  |         <canvas id="canvas">Your browser does no support canvas</canvas> | ||||||
|  |         <script src="eric.js"> </script> | ||||||
|  |     </body> | ||||||
|  | </html> | ||||||
							
								
								
									
										109
									
								
								gitfiti.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								gitfiti.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,109 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <meta charset="utf-8"> | ||||||
|  | <style> | ||||||
|  |  | ||||||
|  | body { | ||||||
|  |   font: 10px sans-serif; | ||||||
|  |   shape-rendering: crispEdges; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .day { | ||||||
|  |   fill: #fff; | ||||||
|  |   stroke: #ccc; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .month { | ||||||
|  |   fill: none; | ||||||
|  |   stroke: #000; | ||||||
|  |   stroke-width: 2px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .RdYlGn .q0-11{fill:rgb(165,0,38)} | ||||||
|  | .RdYlGn .q1-11{fill:rgb(215,48,39)} | ||||||
|  | .RdYlGn .q2-11{fill:rgb(244,109,67)} | ||||||
|  | .RdYlGn .q3-11{fill:rgb(253,174,97)} | ||||||
|  | .RdYlGn .q4-11{fill:rgb(254,224,139)} | ||||||
|  | .RdYlGn .q5-11{fill:rgb(255,255,191)} | ||||||
|  | .RdYlGn .q6-11{fill:rgb(217,239,139)} | ||||||
|  | .RdYlGn .q7-11{fill:rgb(166,217,106)} | ||||||
|  | .RdYlGn .q8-11{fill:rgb(102,189,99)} | ||||||
|  | .RdYlGn .q9-11{fill:rgb(26,152,80)} | ||||||
|  | .RdYlGn .q10-11{fill:rgb(0,104,55)} | ||||||
|  |  | ||||||
|  | </style> | ||||||
|  | <body> | ||||||
|  | <script src="http://d3js.org/d3.v3.min.js"></script> | ||||||
|  | <script> | ||||||
|  |  | ||||||
|  | var width = 960, | ||||||
|  |     height = 136, | ||||||
|  |     cellSize = 17; // cell size | ||||||
|  |  | ||||||
|  | var day = d3.time.format("%w"), | ||||||
|  |     week = d3.time.format("%U"), | ||||||
|  |     percent = d3.format(".1%"), | ||||||
|  |     format = d3.time.format("%Y-%m-%d"); | ||||||
|  |  | ||||||
|  | var color = d3.scale.quantize() | ||||||
|  |     .domain([-.05, .05]) | ||||||
|  |     .range(d3.range(11).map(function(d) { return "q" + d + "-11"; })); | ||||||
|  |  | ||||||
|  | var svg = d3.select("body").selectAll("svg") | ||||||
|  |     .data(d3.range(1990, 2011)) | ||||||
|  |   .enter().append("svg") | ||||||
|  |     .attr("width", width) | ||||||
|  |     .attr("height", height) | ||||||
|  |     .attr("class", "RdYlGn") | ||||||
|  |   .append("g") | ||||||
|  |     .attr("transform", "translate(" + ((width - cellSize * 53) / 2) + "," + (height - cellSize * 7 - 1) + ")"); | ||||||
|  |  | ||||||
|  | svg.append("text") | ||||||
|  |     .attr("transform", "translate(-6," + cellSize * 3.5 + ")rotate(-90)") | ||||||
|  |     .style("text-anchor", "middle") | ||||||
|  |     .text(function(d) { return d; }); | ||||||
|  |  | ||||||
|  | var rect = svg.selectAll(".day") | ||||||
|  |     .data(function(d) { return d3.time.days(new Date(d, 0, 1), new Date(d + 1, 0, 1)); }) | ||||||
|  |   .enter().append("rect") | ||||||
|  |     .attr("class", "day") | ||||||
|  |     .attr("width", cellSize) | ||||||
|  |     .attr("height", cellSize) | ||||||
|  |     .attr("x", function(d) { return week(d) * cellSize; }) | ||||||
|  |     .attr("y", function(d) { return day(d) * cellSize; }) | ||||||
|  |     .datum(format); | ||||||
|  |  | ||||||
|  | rect.append("title") | ||||||
|  |     .text(function(d) { return d; }); | ||||||
|  |  | ||||||
|  | svg.selectAll(".month") | ||||||
|  |     .data(function(d) { return d3.time.months(new Date(d, 0, 1), new Date(d + 1, 0, 1)); }) | ||||||
|  |   .enter().append("path") | ||||||
|  |     .attr("class", "month") | ||||||
|  |     .attr("d", monthPath); | ||||||
|  |  | ||||||
|  | d3.csv("dji.csv", function(error, csv) { | ||||||
|  |   var data = d3.nest() | ||||||
|  |     .key(function(d) { return d.Date; }) | ||||||
|  |     .rollup(function(d) { return (d[0].Close - d[0].Open) / d[0].Open; }) | ||||||
|  |     .map(csv); | ||||||
|  |  | ||||||
|  |   rect.filter(function(d) { return d in data; }) | ||||||
|  |       .attr("class", function(d) { return "day " + color(data[d]); }) | ||||||
|  |     .select("title") | ||||||
|  |       .text(function(d) { return d + ": " + percent(data[d]); }); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | function monthPath(t0) { | ||||||
|  |   var t1 = new Date(t0.getFullYear(), t0.getMonth() + 1, 0), | ||||||
|  |       d0 = +day(t0), w0 = +week(t0), | ||||||
|  |       d1 = +day(t1), w1 = +week(t1); | ||||||
|  |   return "M" + (w0 + 1) * cellSize + "," + d0 * cellSize | ||||||
|  |       + "H" + w0 * cellSize + "V" + 7 * cellSize | ||||||
|  |       + "H" + w1 * cellSize + "V" + (d1 + 1) * cellSize | ||||||
|  |       + "H" + (w1 + 1) * cellSize + "V" + 0 | ||||||
|  |       + "H" + (w0 + 1) * cellSize + "Z"; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | d3.select(self.frameElement).style("height", "2910px"); | ||||||
|  |  | ||||||
|  | </script> | ||||||
							
								
								
									
										43
									
								
								gitfiti.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								gitfiti.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | |||||||
|  | var color = [ | ||||||
|  |   'rgb(255, 255, 255)', | ||||||
|  |   'rgb(200, 255, 255)', | ||||||
|  |   'rgb(150, 255, 255)', | ||||||
|  |   'rgb(100, 255, 255)', | ||||||
|  |   'rgb(50, 255, 255)', | ||||||
|  |   'rgb(0, 255, 255)', | ||||||
|  | ] | ||||||
|  |  | ||||||
|  | var paint=0 | ||||||
|  | document.body.addEventListener('mousedown', function(){paint=1;console.log('painting');}, false ); | ||||||
|  | document.body.addEventListener('mouseup',function(){paint=0;console.log('released')}, false); | ||||||
|  |  | ||||||
|  | function box(){ | ||||||
|  | 	var box = document.createElement("div"); | ||||||
|  | 	box.value=0; | ||||||
|  | 	box.style.width='25px'; | ||||||
|  | 	box.style.height='25px'; | ||||||
|  | 	box.style.border='1px solid gray'; | ||||||
|  | 	box.style.backgroundColor=color[0]; | ||||||
|  | 	box.paint=0 | ||||||
|  | 	//box.onclick = function() { cycle(this);}; | ||||||
|  | 	box.addEventListener('mousemove', function(){cycle(this);}, false ); | ||||||
|  | 	document.body.appendChild(box); | ||||||
|  | 	return box | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | function boxes(){ | ||||||
|  | 	var column = []; | ||||||
|  | 	for (i=0;i<7;i++){ | ||||||
|  | 		column[i]=box(); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function cycle(object){ | ||||||
|  | 	if (paint==1){ | ||||||
|  | 	object.value+=0.5; | ||||||
|  | 	object.value%6; | ||||||
|  | 	object.style.backgroundColor=color[object.value]; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boxes(); | ||||||
							
								
								
									
										122
									
								
								gitfiti.py
									
									
									
									
									
								
							
							
						
						
									
										122
									
								
								gitfiti.py
									
									
									
									
									
								
							| @ -1,5 +1,18 @@ | |||||||
| #gitfiti | #gitfiti | ||||||
| import os, sys | #generate a value insertion plan for a 7xN matrix | ||||||
|  | #github new repo in account | ||||||
|  | #git init new repo | ||||||
|  | #	git add gitfiti_output | ||||||
|  | #	start of file: | ||||||
|  | #	git commit -date $(date in the past) gitfiti_output | ||||||
|  | #	for day in matrix: | ||||||
|  | #		for value in day: | ||||||
|  | #			add a character to gitfiti file | ||||||
|  | #			git commit -m -date $date_value gitfiti_output "g" | ||||||
|  | #git add remote (get github url) | ||||||
|  | #git push -f master | ||||||
|  |  | ||||||
|  | import os, sys, datetime, math | ||||||
| try: | try: | ||||||
| 	import requests | 	import requests | ||||||
| except: | except: | ||||||
| @ -9,53 +22,90 @@ except: | |||||||
| BASEURL='https://github.com/' | BASEURL='https://github.com/' | ||||||
| color_commit_values=[0,1,2,3,4] | color_commit_values=[0,1,2,3,4] | ||||||
|  |  | ||||||
|  |  | ||||||
| def get_calendar(username): | def get_calendar(username): | ||||||
| 	"""retrieves the github commit calendar data for a username""" | 	"""retrieves the github commit calendar data for a username""" | ||||||
| 	url = BASEURL + 'users/' + username + '/contributions_calendar_data' | 	url = BASEURL + 'users/' + username + '/contributions_calendar_data' | ||||||
| 	req = requests.get(url) | 	req = requests.get(url) | ||||||
| 	return req.json() | 	return req.json() | ||||||
|  |  | ||||||
|  | def max_commits(input): | ||||||
|  | 	"""finds the highest number of commits in one day""" | ||||||
|  | 	output = set() | ||||||
|  | 	for i, j in enumerate(input): | ||||||
|  | 		output.add(input[i][1]) | ||||||
|  | 	output = list(output) | ||||||
|  | 	output.sort() | ||||||
|  | 	output.reverse() | ||||||
|  | 	return output[0] | ||||||
|  |  | ||||||
| def trim_calendar(input): | def trim_calendar(input): | ||||||
| 	"""remote the first 6 days to align data with sundays""" | 	"""returns index of first sunday in the input""" | ||||||
| 	trim=input[6:] | 	for i, j in enumerate(input): | ||||||
| 	return trim | 		day = input[i][0] | ||||||
|  | 		day = datetime.datetime.strptime(day, '%Y/%m/%d') | ||||||
|  | 		weekday = datetime.datetime.weekday(day) | ||||||
|  | 		if weekday == 6: | ||||||
|  | 			return i | ||||||
|  |  | ||||||
| def squash_calendar(input): | kitty=[ | ||||||
| 	"""group days into weeks for formatting""" | [0,0,0,4,0,0,0,0,4,0,0,0], | ||||||
| 	c=[] | [3,3,4,2,4,4,4,4,2,4,3,3], | ||||||
| 	input.pop	 | [0,0,4,2,2,2,2,2,2,4,0,0], | ||||||
| 	return c | [3,3,4,2,4,2,2,4,2,4,3,3], | ||||||
|  | [0,0,4,2,2,3,3,2,2,4,0,0], | ||||||
|  | [3,3,4,2,2,2,2,2,2,4,3,3], | ||||||
|  | [0,0,0,4,4,4,4,4,4,0,0,0]] | ||||||
|  |  | ||||||
|  | oneup=[ | ||||||
|  | [0,0,4,4,4,4,4,4,4,0,0], | ||||||
|  | [0,4,2,2,1,1,1,2,2,4,0], | ||||||
|  | [4,3,2,2,1,1,1,2,2,3,4], | ||||||
|  | [4,3,3,4,4,4,4,4,3,3,4], | ||||||
|  | [0,4,4,1,4,1,4,1,4,4,0], | ||||||
|  | [0,0,4,1,1,1,1,1,4,0,0], | ||||||
|  | [0,0,0,4,4,4,4,4,0,0,0]] | ||||||
|  |  | ||||||
| #find date range for N weeks |  | ||||||
| #each column starts on SUNDAY | #each column starts on SUNDAY | ||||||
|  | def multiplier(max_commits): | ||||||
|  | 	"""calculates a multiplier to scale github colors to commit history""" | ||||||
|  | 	m = max_commits/4.0 | ||||||
|  | 	m = math.ceil(m) | ||||||
|  | 	m = int(m) | ||||||
|  | 	return m | ||||||
|  |  | ||||||
| #generate a value insertion plan for a 7xN matrix | def fakeit(image, reference, multiplier=1): | ||||||
|  | 	height = range(7) | ||||||
|  | 	width = len(image[0]) | ||||||
|  | 	cal_index = 0 | ||||||
|  | 	for w in range(width): | ||||||
|  | 		for h in height: | ||||||
|  | 			count = image[h][w]*multiplier | ||||||
|  | 			if count == 0: | ||||||
|  | 				cal_index += 1 | ||||||
|  | 				continue | ||||||
|  | 			for c in range(count): | ||||||
|  | 				date = reference[cal_index][0] | ||||||
|  | 				date = datetime.datetime.strptime(date, '%Y/%m/%d').isoformat() | ||||||
|  | 				shelloutput(c, date) | ||||||
|  | 			cal_index += 1 | ||||||
|  |  | ||||||
| #github new repo in account | def shelloutput(content, commitdate): | ||||||
|  | 	print '''echo ''' + str(content) + ''' >> gitfiti''' | ||||||
|  | 	print '''GIT_AUTHOR_DATE=''' + commitdate + ''' GIT_COMMITTER_DATE=''' + commitdate + ''' git commit -a -m "''' + "gitfiti" +'''"''' | ||||||
|  |  | ||||||
| #git init new repo |  | ||||||
| #	git add gitfiti_output |  | ||||||
|  |  | ||||||
| #	start of file: | #git init gitfitii | ||||||
| #	git commit -date $(date in the past) gitfiti_output | #cd gitfiti | ||||||
|  | #touch gitfiti | ||||||
|  | #git add gitfiti | ||||||
|  | ###SHELLOUTPUT | ||||||
|  | #git remote add origin git@github.com:gelstudios/kitty.git | ||||||
|  | #git push -u origin master | ||||||
|  |  | ||||||
| #	for day in matrix: | username='gelstudios' | ||||||
| #		for value in day: | cal = get_calendar(username) | ||||||
| #			add a character to gitfiti file | x = trim_calendar(cal) | ||||||
| #			git commit -m -date $date_value gitfiti_output "g" | m = max_commits(cal) | ||||||
|  | m = multiplier(m) | ||||||
| #git add remote (get github url) | cal = cal[x:] | ||||||
| #git push -f master | fakeit(kitty, cal, m) | ||||||
|  |  | ||||||
| #profit! |  | ||||||
|  |  | ||||||
| test=[ |  | ||||||
| [4,3,2,1,0], |  | ||||||
| [3,2,1,0,4], |  | ||||||
| [2,1,0,4,3], |  | ||||||
| [1,0,4,3,2], |  | ||||||
| [0,4,3,2,1] |  | ||||||
| ] |  | ||||||
|  |  | ||||||
| #GIT_AUTHOR_DATE='your date' GIT_COMMITTER_DATE='your date' git commit -m 'new (old) files' |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								gitfiti.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gitfiti.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										5
									
								
								text.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								text.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <head> | ||||||
|  | </head> | ||||||
|  | <body><script src='gitfiti.js'></script> | ||||||
|  | </body> | ||||||
							
								
								
									
										7
									
								
								views/index.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								views/index.tpl
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | login page | ||||||
|  | <html> | ||||||
|  | <head> | ||||||
|  | <form> | ||||||
|  | 	<input> | ||||||
|  | </form> | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user