Code Monkey home page Code Monkey logo

grail-0.6's Introduction

** This is an attempted port of Grail to Python 3. **
** Below is the original README. **

GRAIL 0.6
=========

Grail(TM) is a web browser written in Python, an object-oriented
scripting language.  Grail is distributed in source form.  It requires
that you have a Python interpreter and a Tcl/Tk installation, with the
Python interpreter configured for Tcl/Tk support.

In this file:

	- Licensing issues
	- Future development
	- Hardware requirements
	- Installation
	- Using Grail
	- Web resources
	- Feedback
	- Epilogue


Licensing issues
----------------

The license of Grail allows essentially unrestricted use and
redistribution.  The full text of the license can be found in the file
LICENSE in this directory.  The sources are Copyright (c) CNRI
1996-1999.  Grail is a registered trademark of CNRI.


Future development
------------------

Given the low usage of Grail, CNRI cannot allocate further resources
to this project.  The license allows for derivative projects, so
anyone who has a need for a Python-based or easily modified Internet
browser is free to use the Grail source code as a basis for a new
project.

The Grail development team would be happy to provide anyone seriously
interested in using Grail as the basis for a new project with a copy
of the CVS repository.  We are also able to provide pointers from the 
Grail Web site to any new projects that spring up based on Grail.


Hardware requirements
---------------------

Grail runs on most Unix systems, on Windows NT and 95, and on
Macintosh systems, provided you have enough memory and a fast enough
machine.  (For Windows, 32 Meg RAM and 90 MHz Pentium is a reasonable
minimal configuration.  For Macintosh, a 40 MHz 68k or any PPC, with
24 Meg RAM, is acceptable.)


Installation
------------

There are three steps to take before you can use Grail:

- Install Tcl and Tk.  The versions must be compatible with each other
and with the Python version you are installing in the next step;
currently, the oldest Tcl/Tk version supported is 8.0.  You can get
Tcl/Tk it at http://www.scriptics.com/; or try ftp to ftp.sunlabs.com
in directory /pub/tcl/.

- Install Python 1.5 (or newer if available), configured for use with
Tk.  The URL to get Python is http://www.python.org/; or try ftp to
ftp.python.org in directory /pub/python/src/.  You must enable Tk
support by editing the file Modules/Setup; see the comments in that
file (search for "tkinter") and the main README that comes with Python.

- Install the Grail sources in a convenient place.  Grail is executed
directly from its source directory.  If you are using the /usr/local
hierarchy, the Grail sources could be installed in
/usr/local/lib/grail/.

You can also choose to leave grail.py unchanged and have a shell
script named "grail" which execs the Python interpreter, e.g.:

    exec python /usr/local/lib/grail/grail.py ${1+"$@"}

(On Windows or Macintosh systems, the best thing to do is to create a
shortcut or alias to the file grail.py on the desktop.)


Using Grail
-----------

If the first line of the grail.py script points to a working Python
interpreter with Tk support, you should be able to start Grail by
executing "./grail.py" in the Grail source directory.  Grail figures
out where the source directory is by inspecting sys.argv[0], so in
fact typing the pathname to the script from anywhere should work.

Command line options:

The "-g <geometry>" option lets you specify an initial geometry for
the first browser window in the standard X11 geometry form:
[<width>x<height>][+<x>+<y>], where all dimensions are measured in
pixels.  It is also possible to set the width and height (in character
units) through the General preference panel.

The "-i" option inhibits loading of images for this session.
This option can also be set via the General preference panel.

The "-d <display>" option lets you override the $DISPLAY environment
variable.

Advanced users with a grailrc.py file can use "-q" to inhibit
processing of grailrc.py.  This may be useful during debugging.

Command line arguments:

The only positional command line argument is an optional URL of a page
to display initially.  This does not become your "home page"; use the
General preference panel to change the page loaded by the Home command
in the Go menu, and to choose whether this page should be loaded
initially if no URL is given on the command line.


Web resources
-------------

More information on using Grail can be found through the Grail home
page, at this URL:

    http://grail.sourceforge.net/

This page is also accessible through the "Grail Home Page" item of the
Help menu.

For installing the Grail browser go to this URL:

	https://sourceforge.net/projects/grail/


Feedback
--------

Grail 0.6 is the last version of Grail to be released by CNRI.  If a
new project based on Grail appears, we will be glad to point to it
from the Grail Web site, but we are not prepared to respond to bug
reports.

Refer to the Grail Web site to determine if any derived projects have
been started.


Epilogue
--------

"Everything should be made as simple as possible, but no simpler."
	--Albert Einstein

"Nothing is as simple as we hope it will be."
	--Jim Horning

"Simple is as simple does."
	--Forrest Gump

grail-0.6's People

Contributors

gvanrossum avatar prakharpythonprogrammer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

grail-0.6's Issues

Answers to questions like: What are the goals of this project ? Which specific version are we targeting ? etc.

  1. We are targeting the latest Python which is Python 3.9
  2. This project is trying port Grail from Python 1 to Python 3.9
  3. After the implementation is done we want to improve this browser to add more functions and make it user-friendly
  4. In future, we might also make an incognito like tab inside this browser

Current Status
Currently we are trying to make an implementation of the existing code into Python 3.9

If you have any question which I wasn't able to answer feel free to ask that question inside this issue.

I want to help

Hi Everyone.,My name is Niyant. I am here to help you for updating of browser.... I hope I can give my best...
I am person of brain storming ideas and I have experience of begginer in python... So I hope you don't mind it and helping each other here will be key feature of here... And believe me I can give you so woowwwww!!!!! Ideas that you have never thought or ever imagined....
I am ending with this for a new start of new Journey.... And I am thankful to GVR sir and originator PPP..... Thank you for understanding me and feeling I am useful too you

Remove unnecessary code

def more_complete_challenge_parse(self):        
        return

        challenge = headers['www-authenticate']
        # <authscheme> realm="<value>" [, <param>="<value>"] ...
        parts = string.splitfields(challenge, ',')
        p = parts[0]
        i = string.find(p, '=')
        if i < 0: return
        key, value = p[:i], p[i+1:]
        keyparts = string.split(string.lower(key))
        if not(len(keyparts) == 2 and keyparts[1] == 'realm'): return
        authscheme = keyparts[0]
        value = string.strip(value)
        if len(value) >= 2 and value[0] == value[-1] and value[0] in '\'"':
            value = value[1:-1]

In this code why did we do all this if we just wanted to return nothing. The code below return won't get executed so why did we write all this code. What is the purpose of it @gvanrossum ?

ImportError: cannot import name 'tktools' from 'utils' (unknown location)

Problem:
While running python3 grail.py an error occurs ImportError: cannot import name 'tktools' from 'utils' (unknown location)

Notes:
tkinter was installed using sudo apt install python3-tk
utils installed using pip3 install python3-utils

Specs:
Python 3.9.5
PIP 20.3.4
Ubuntu 21.04
Kernel 5.11.0-31-generic

Convert to Python 3?

Do you want to run this using Python 2 or 3?

If it is to have a future it should probably use Python 3, but given that it was written for Python 1, it would be simpler to start out with Python 2.

If you stick to Python 2 you won’t have to deal with converting print statement to calls and other 2to3 stuff. Plus if you find it is hopeless you will have wasted less time... :-)

Add some motivational quotes in the browser ?

Hi Everyone
Good Evening PPP Originator.... I came up with idea that we can put motivational quotes while in free time they can have motivation...and we will update these quotes every time whenever he/she opens it....
So I hope u liked my idea...

regex.compile translate parameter problem

In the Reader.py file(also in some other files) there was one place where instead of regex.compile I wrote re.compile now the problem is that regex.compile took translate parameter which was an optional parameter. This parameter translated the string and the pattern before comparing the string with the pattern. I have come up with one solution. I'll convert the pattern and the string into casefolded strings beforehand and then use the compile function and this time I'll not have to mention that translate parameter. Meanwhile if anyone knows any alternate function for regex.compile which works in Python 3 then please inform me and I'll use that.

rfc822 module not found shall we use plone.rfc822 or email module ?

There is no module like rfc822 in python 3. It was removed in python 3. So now I want to ask which alternative shall we use because I don't have much experience with these two modules. There is email module and plone.rfc822 module. I think plone.rfc822 will be similar to rfc822 so we don't need to change much. What is your opinion ?

Sincerely
Prakhar

Make repo public?

There was some interest on Twitter but the repo is private so people cannot see it. Would you mind opening it up?

Replace usages of "string" module

I was taking a look to see if I could help and it became clear there are several transformations that need to be applied across the whole code base before being able to work on individual files.

The first thing I notice compared to Python 3 is the "string" module which appears to refer to a module that was available in Python 1 and 2 but not in 3: https://docs.python.org/release/1.4/lib/node49.html

Doing a naive search through the code bade I found the following methods exceptions being used and I've listed their replacements:

string.capitalize -> str.capitalize 
string.capwords -> str.title
string.splitfields -> str.split
string.upper -> str.upper
string.lstrip -> str.lstrip
string.replace -> str.replace
string.joinfields -> str.join
string.atol -> int
string.rfind -> str.rfind
string.lower -> str.lower
string.whitespace -> string.whitespace
string.split -> str.split
string.atoi -> int
string.digits -> string.digits
string.maketrans -> str.maketrans
string.rstrip -> str.rstrip
string.index -> str.index
string.atof -> float
string.strip -> str.strip
string.translate -> str.translate
string.find -> str.find
string.join -> str.join

I also found the following exceptions which all look like they can be replaced with ValueError:

string.atof_error
string.atoi_error
string.atol_error

I am preparing a PR with the following steps:

  1. Find any case where a name is bound to the built-in str, and change the name to str_
  2. Replace the above methods
  3. Replace the above exceptions

I plan to automate the bulk of the replacements and I don't have any test cases to prove it's the correct approach as the code base itself does not run. So let me know if there's any preferred other way you think this should be approached.

UndefinedStyle

I have searched on internet and as far as my knowledge there is no exception like UndefinedStyle. Can you tell @gvanrossum what kind of error did you want it to handle ? Maybe the name for that exception is changed.

What is this At ?

I am changing the files according to Python 3 and this At appears many times ? What is this At ? Is it a class(I'm guessing because of naming convention rule) or is it function(less chance I think) ? And what is the alternative for this in Python 3 ?

Automatic suggestions while searching

Hi Everyone
Good Evening PPP

I got one more idea if we can use public search history which they are searching and we can put that also if public doesn't like or want to change quote panel with their search and Trending searches.....

I hope you will like my idea....

Keep using tkinter or try some other module ?

I was thinking about whether we should keep going with tkinter or change the module. After researching about it on internet I have come to the conclusion that PyQt5 module is better than tkinter. This module provides a tool QtDesigner which will help us in building the GUI for our app. Of course if we start with a new module we'll have to start everything from scratch. All the tkinter code will be useless. I want your opinion on it sir. Should we go with tkinter or try some other module like PyQt5.

Some files seem to be missing

I haven't checked each and every folder so I don't know the total number but some files seem to be missing like grail.py
Why did you delete those @vadmium ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.